列表
- 任意对象的有序集合
- 通过偏移量读取
- 可变长度、异构(可包含任何类型的对象)以及任意嵌套
- 属于可变序列的分类
- 对象引用数组(即列表本身存储的只是对象的引用)
1.常用列表常量及操作
操作 | 解释 | 备注 |
---|---|---|
L = [] | 一个空列表 | |
L = [0,1,2,3] | 四项:索引为0到3 | |
L = [‘abc’,[‘def’,’ghi’]] | 嵌套的子列表 | |
L = list(‘spam’) L = list(range(-4,4,1)) | 将字符串生成为列表 将数字转换为列表 | |
L[i] L[i][j] L[i: j:k] len(L) | 索引 索引的索引 分片 求长度 | L = [‘a’,’da’,’fdgs’,’sffgdg’,’hhh’] print L[3] print L[3][1: -1:2] 结果 sffgdg fg |
L1+L2 | 合并 | |
L*3 | 重复 | |
for x in L:print(x) 3 in L | 迭代 成员关系 | |
L.append(4) L.extend([5,6,7]) L.insert(index,object) L.index(value) L.count(x) L.sort() L.reverse() | 末位插入4 末位插入[5,6,7] 在index位插入值object 获取value的索引号 返回x出现的次数 排序 反转 | |
del L[k] del L[i:j] L.pop() L.remove(2) L[i:j] = [] | 删除 分片删除 返回值,并删除该值 删除值2 | L.pop()默认取出并删除最后一个元素 |
L[i] = 1 L[i:j] = [4,5,6] | 索引赋值 分片赋值 | |
L=[x**2 for x in range(5)] | 列表解析 | L = [x**2 for x in range(5)] print L 结果 [0, 1, 4, 9, 16] |
list(map(ord,’spam’)) | list(map(abs,[-1,-2])) 结果 [1,2] |
2.列表操作的一些tips
1)索引、分片和矩阵
>>> matrix = [[1,2,3],[4,5,6],[7,8,9]]
>>> matrix[1]
[4, 5, 6]
>>> matrix[1][2]
6
>>> matrix[0][:-1]
[1, 2]
2)原处修改列表
>>> L=['spam',"SPAM",'''Spam''']
>>> L[0:2]=['eat','egg','more']
>>> L
['eat', 'egg', 'more', 'Spam']
>>> L.append('please')
>>> L
['eat', 'egg', 'more', 'Spam', 'please']
>>> L.sort(key=str.lower,reverse=True)
>>> L
['Spam', 'please', 'more', 'egg', 'eat']