列表
任意对象的有序集合
1、定义
列表可以包含任何种类的对象;
列表都是可变的;
列表是有序的;
2、常用操作
# 列表长度
L1 = [1, 2, 3, 4]
print(len(L1)) # 4
# 列表拼接
L2 = L1 + [5, 6]
print(L2) # [1, 2, 3, 4, 5, 6]
# 生成重复列表
print(['list'] * 5) # ['list', 'list', 'list', 'list', 'list']
# 不能将一个列表和一个字符串合并到一起,除非你先把列表转换为字符串
print(str([1, 2]) + "79") # [1, 2]79
# 除非你先把列表转换为字符串(使用诸如反引号、str或者%格式这样的工具),或者把字符串转换为列表(列表内置函数能完成这一转换
print([1, 2] + list("78")) # [1, 2, '7', '8']
# 列表的迭代和解析
print(3 in L1) # True
for i in L1:
print(i)
# 1
# 2
# 3
# 4
L3 = [c * 4 for c in 'LIST']
print(L3) # ['LLLL', 'IIII', 'SSSS', 'TTTT']
# 使用 map 函数把结果收集到一个新列表中
L4 = list(map(abs, [3, 5, -9, -8, 0]))
print(L4) # [3, 5, 9, 8, 0]
# 索引、分片和矩阵
L5 = ['start', 'on', 8, 9]
print(L5[2]) # 8
print(L5[-1]) # 9
print(L5[1:]) # ['on', 8, 9]
# 嵌套列表的索引
matrix = [[1, 2, 3], [4, 5], ['big', 'ped']]
# 如果使用两次索引,你将会得到某一行里的其中一项
print(matrix[1][1]) # 5
# 列表的修改
L6 = ['book', 'car', 'small']
L6[0:2] = ['dog', 'tool', 'egg']
# 列表的索引是从 0 开始,不包括结束位置,这里会把 'book', 'car' 替换为:'dog', 'tool', 'egg'
print(L6) # ['dog', 'tool', 'egg', 'small']
# 删除操作,删除第一个元素
L6[0:1] = []
print(L6) # ['tool', 'egg', 'small']
# 添加元素:append
L7 = [1, 2, 3]
L7.append(8)
print(L7) # [1, 2, 3, 8]
# 清空列表
L8 = [1, 2, 3, 4]
print(L8.clear()) # None
# 列表排序 sort
L9 = ['abc', 'DA', 'cool']
L9.sort()
print(L9) # ['DA', 'abc', 'cool']
# 使用key=func关键字参数在排序时编码值的转换,使用reverse=True关键字参数把排序顺序改为降
L9.sort(key=str.lower, reverse=True)
print(L9) # ['DA', 'cool', 'abc']
# 注意:使用 append 和 sort 原处修改列表的时候得到的是 None, 不需要再重新赋值:L0 = L9.sort()
print(L9.sort()) # None
print(L9.append('ss')) # None
# 原地反转 list
L7.reverse()
print(L7) # [8, 3, 2, 1]
# extend 方法能够在末端插入多个元素
L7.extend([6, 7, 8])
print(L7) # [8, 3, 2, 1, 6, 7, 8]
# 删除并返回最后一个元素
print(L7.pop()) # 8
print(L7) # [8, 3, 2, 1, 6, 7]
# 查找元素索引
print(L7.index(3)) # 1
# 插入元素
L7.insert(1, 4)
print(L7) # [8, 4, 3, 2, 1, 6, 7]
# 删除元素
L7.remove(2)
print(L7) # [8, 4, 3, 1, 6, 7]
del L7[0]
print(L7) # [4, 3, 1, 6, 7]