列表
列表是任意对象的有序集合。也就是说,其元素可以是任何类型的对象。有序指的是,有严格的从左到右的顺序,这一点不同于字典,可以通过偏移读取,支持在原处修改,长度可变,是可变的类型。
1. 常用的列表操作
>>> L1 = []
>>>
>>> L2 = [0, 1, 2]
>>>
>>> L3 = [0, 'a', [1, 2]]
>>>
>>> L4 = list('34') #['3', '4']
>>>
>>> L5 = range(5) #range(n),当n>0时生成0~(n-1)的列表,n<=0时为[]
>>> L5
[0, 1, 2, 3, 4]
>>>
>>> L6 = range(2,5)
>>> L6
[2, 3, 4]
>>>
>>> L1 + L2 #合并
[0, 1, 2]
>>>
>>> L2 * 3 #重复
[0, 1, 2, 0, 1, 2, 0, 1, 2]
>>>
>>> L2.reverse() #反转
>>> L2
[2, 1, 0]
>>> L2.sort() #排序
>>> L2
[0, 1, 2]
>>> L2.index(1) #元素1所在的下标
1
>>> L2.pop() #删除最后一个元素,并返回该元素的值
2
>>> L2.pop(0) #删除下标为0的元素,并返回该元素的值
0
>>> L1.extend([4, 5, 6]) #在末端添加列表元素
>>>
>>> del L1[0] #删除下标为0的元素
>>>
>>> del L1[1:]
>>>
>>> L4.append('5') #在末端添加元素
>>>
>>> L4.insert(1, '6') #在下标为1处添加元素
>>> L4
['3', '6', '4', '5']
>>> L4[1:] = ['a'] #对列表的分片赋值
>>> L4
['3', 'a']
>>> L4[1:] = [] #将分片赋值为空,来达到删除的目的
>>> L4
['3']
2. 列表可以作为数组
>>> L1 = ['a', 'b', 'c'] #一维数组
>>> L1
['a', 'b', 'c']
>>> L2 = [[1, 2, 3], #二维数组
... [4, 5, 6],
... [7, 8, 9]]
>>> L2
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
>>>
>>> L2[0][1] #通过下标来访问二维数组
2
3. 列表解析
列表解析是一种通过在一个序列中运行一个表达式而创建一个新的列表,需要使用方括号。列表继续可以嵌套任意数目的for语句,每个for语句都可以结合一个可选的if。
其基本形式是:[操作 迭代 (判断) 迭代 (判断)...],括号表示可选
>>> [c * 2 for c in 'spam']
['ss', 'pp', 'aa', 'mm']
>>> L1 = ['1', '2', '3']
>>> L2 = ['a', 'b', 'c']
>>> [x + y for x in L1 for y in L2]
['1a', '1b', '1c', '2a', '2b', '2c', '3a', '3b', '3c']
>>> [x + y for x in L1 if x == '3' for y in L2 if y == 'c']
['3c']
4. 列表的方法
查找
a = ['1','2','3','1']
a.index('1')返回0,index方法返回第1个匹配的元素的下标