python的列表

在python中是没有数组这个概念的,但是python开发者却提供了一个更为强大的数据结构,那就是今天的主角——列表了。
首先我们定义一个列表

num = ['xiao',1,2,'ert']

那么输出结果即为:

['xiao', 1, 2, 'ert']

可以看到,列表中既有字符串又有数字,这就是列表的强大之处了,它可以无视数据类型来存放数据,在C语言中,一个数组只能存放相同的数据类型,而在python中的列表里可以打破这个限制,是不是显得更加方便了?
那么对于列表则有以下几种操作方法:

1.访问列表元素:

num[1]
'gouzi'

可以看到,和数组一样都是可以直接用下标来访问某个元素,并且列表下标是从0开始的

2.扩展列表:列表名.extend([x1,x2…])

nun = [1,2,3,4]
>>> nun.extend([5,6,7])
>>> nun
[1, 2, 3, 4, 5, 6, 7]

我们可以看到,使用这个函数后,我们的原列表相当于在末尾加上了一个新的列表,这函数作用就是在某个列表的最后加上一个列表,使其列表实现扩张

3.插入列表:列表名.insert(x,y)

nun.insert(0,0)
>>> nun
[0, 1, 2, 3, 4, 5, 6, 7]

可以看到,原列表的头部插入了一个元素0,那么这个函数是用来在列表某个位置插入某个元素,x代表位置下标,y代表元素(也可插入字符串,但要加单引号)

4.移除某个列表元素:列表名.remove(x)

nun = [1,2,3,4]
>>> nun.extend([5,6,7])
>>> nun
[1, 2, 3, 4, 5, 6, 7]
>>> nun.insert(0,0)
>>> nun
[0, 1, 2, 3, 4, 5, 6, 7]
>>> nun.remove(7)
>>> nun
[0, 1, 2, 3, 4, 5, 6]
>>> nun.remove(3)
>>> nun
[0, 1, 2, 4, 5, 6]

可以看到,函数作用是将某个元素直接移出列表之外,x代表移除元素名,如果没有该元素,系统会报错。

5.使列表最后一个元素移出,并显示在屏幕上:列表名.pop(x)

nun
[0, 1, 2, 4, 5, 6]
>>> nun
[0, 1, 2, 4, 5, 6]
>>> nun.pop()
6
>>> nun
[0, 1, 2, 4, 5]
>>> nun.pop(4)
5
>>> nun
[0, 1, 2, 4]

可以看到,如果函数里没有参数,那么将默认移除最后一个,如果有参数,那就移除x下标的元素。那么这个函数remove()有什么区别呢,列表存储结构类似于一个栈,那么栈的函数也能使用,所以这个函数实际上也是一个出栈函数。区别在于,一个是指定对象名,一个是指定对象下标并显示出来,实际中哪个方便就使用哪个。

6.列表拷贝 num1 = num[ :]

nun1 = nun[:]
>>> nun1
[0, 1, 2, 4]

若括号里存在数字,如下:

nun
[0, 1, 2, 4]
>>> nun1 = nun[:]
>>> nun1
[0, 1, 2, 4]
>>> nun2 = nun[1:3]
>>> nun2
[1, 2]

代表拷贝原列表中的下标为1到下标为2的元素,因为python的括号范围都是左闭右开的。

7.列表大小比较:列表1 符号 列表2

nun1
[0, 1, 2, 4]
>>> nun2 = nun[1:3]
>>> nun2
[1, 2]
>>> nun2 > nun1
True

若该语句正确,则返回值为True,反之返回False。并且列表比较大小是从下标相同的元素开始比较,若一旦存在大小关系,那么列表后续元素都不再参与比较,直接得出答案。

8.列表元素出现次数查找:列表名.count(x)

nun = [1,2,2,3,4,2]
>>> nun
[1, 2, 2, 3, 4, 2]
>>> nun.count(2)
3

如上,列表中的2出现了3次,x代表需要查询的元素,返回值为多少次。

9.查找列表元素第一次出现的位置:列表名.index(x)

nun = [1,2,2,3,4,2]
>>> nun
[1, 2, 2, 3, 4, 2]
>>> nun.count(2)
3
>>> nun.index(2)
1

如上,该元素第一次出现在下标为1的位置,那么返回值则为该下标,x代表查找元素名。

10.列表的倒序排列和从小到大的排序:

nun
[1, 2, 2, 3, 4, 2]
>>> nun.reverse()#这是将列表倒序的函数
>>> nun
[2, 4, 3, 2, 2, 1]
>>> nun.sort()#这是将列表从小到大排序的函数
>>> nun
[1, 2, 2, 2, 3, 4]
>>> nun.sort(reverse=True)#调用reverse函数,将sort函数变为从大到小进行排列
>>> nun
[4, 3, 2, 2, 2, 1]
>>> 

这里注明一下,JAVA和C是用/* … */来进行注释的,但是python#…来进行注释的。这两个函数调用就完事了,没什么可说的。

9.关于列表的地址传递和值传递:

nun1 = nun
>>> nun1
[4, 3, 2, 2, 2, 1]
>>> nun.remove(2)
>>> nun
[4, 3, 2, 2, 1]
>>> nun1
[4, 3, 2, 2, 1]
>>> nun2
[4, 3, 2, 2, 2, 1]
>>> 
nun1 = nun
>>> nun2 = nun[:]
>>> nun1
[4, 3, 2, 2, 2, 1]
>>> nun2
[4, 3, 2, 2, 2, 1]

由此可知,拷贝相当于值传递,但是赋值相当于地址传递,可以参考C的指针用法。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值