列表在python里面可以理解成超级数组:可以存放多种类型的变量,eg:x=[1,2,3];x=[1,'qiang ge'];x=[1,'qiang ge',['刘董','亮仔']] ----->x[0]=1,x[2]='qiang ge',x[3]=['刘董','亮仔']。
有关列表操作的常见BIF:
append:x.append(a)------>把元素a加入到列表x的末端;a也可以是一个列表,但是使用append后在存放在x中的 为一个元素,eg:
x=[1,'qiang ge',['刘董','亮仔']]
<span style="white-space:pre"> </span> y=['come on','强哥']
<span style="white-space:pre"> </span> x.append(y)=[1,'qiang ge',['刘董','亮仔'],['come on','强哥']]
所以得到的列表长度:len(x)=4, x[3]=['come on','强哥']
extend:x.extend(y)----->把一个列表y加入到列表x中,y中可以包涵多个元素。eg:
x=[1,'qiang ge',['刘董','亮仔']]
y=['come on','强哥']
x.extend(y)=[1,'qiang ge',['刘董','亮仔'],'come on','强哥']
此时得到的列表长度:len(x)=5, x[3]='come on', x[4]='强哥'
inert: x.insert(position,a)---->把元素a插入到列表x的第position位置:position是位置索引,从0开始;eg:
x=[1,'qiang ge',['刘董','亮仔']]
<span> </span> y=['come on','强哥']
<span> </span> x.insert(y)=[['come on','强哥'],1,'qiang ge',['刘董','亮仔']]
注:当用for循环输出打印列表元素的时候:
for i in x:
print(i,end=' ')
i即为元素,i in x指的是 x中的元素i(这与c语言中的数组下标不同)
列表中获取元素:
1、列表中的元素交换,直接可以使用中间变量temp完成(和C语言一样)
2、列表中删除元素:
x.remove(a)------>删除列表x中的元素 a
del x[index]------->删除列表x中索引为index的元素(del是语句操作(函数)) 【索引从0开始】
x.pop()----->将列表x的末元素删除且删除的末元素=x.pop()
x.pop(index)---->删除x中索引为index的元素,且 被删元素delnum=x.pop(index)
3、切片操作,取出列表中的一部分:
x[0 : i]~x[: i] ; xx=x[i : j], i j 均为索引
4、获取列表当中的列表的元素:
当x=[1,2, [ ‘刘董’, '亮仔' ] ,4,5],则:
x[2]=[ ‘刘董’, '亮仔' ]; x[2][1]='亮仔'
列表操作符:
1、列表相加:list1+list2~列表的extend
2、列表重复:list=[1,2] 则 list*3=[1,2,1,2,1,2]
3 、in 操作符:x=[1,2, [ ‘刘董’, '亮仔' ] ,4,5]
4 in x----->True ; '刘董' in x ----->False '刘董' in x[2] ----->True
即判定列表中的列表的元素是否位于大列表中,需要嵌套
关于列表的一些BIF:
x.count(a) ------>返回元素a在列表x中出现的次数
x.index(a,m,n)---->返回元素a在列表中的索引,(m,n设置为选取的列表的首尾索引,默认为0-end)
x.reverse()---->将列表x前后翻转
x.sort() ---->将列表元素升序排序,x.sort(reverse=True)----->降序排列
注意:列表的拷贝问题: list1=[1,2,'qiang ge']
当用 list2=list1[:] 时生成了一个新的列表list2,对list1进行操作时,不会影响到list2
当用 list2=list1 时,对list1操作后,list2也会跟着改变。
(因为python中的标量相当于标签,list1指向给列表分配好了的内存地址(id(list1)),list2=list1,相当于标签list2也指向该内存的地址,当对该列表进行操作时,只是内存的数据发生变化,地址不变,所以list2也跟随变化 ---一个列表分配一个内存地址)
y=x.copy() ----->复制列表x给y,相当于y=x[:]
元组(tuple):
元组的元素不能修改,python中元组的关键在于' ,',而非( ) (相对应的列表的关键在于:[ ]. )
eg :x=(1) ---->type(x)='int' , x=(1,)----->type(x)='tuple'
对于:tuple1=1,2,3------->创建的是一个三元素的一个元组 type(tuple1)='tuple'
可以用在元组的常用操作符: 拼接、成员操作符(in 和 notin)