在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的指针用法。