什么是 List
List 是 Python 中的一种序列类型,List 是可变的,因此,即使在创建列表之后,它们也可以更改。
创建 List
使用一对方括号[]
创建一个 List:
# 创建一个空的 List
l = []
print(l)
# 创建一个数字 List
l = [1,2,3]
print(l)
# 创建一个字符串 List
l = ['a','b','c']
print(l)
# 创建一个嵌套的 List
l = [['a'], ['a', 'b', 'c']]
print(l)
使用列表推导式创建 List: [x for x in iterable]
l = [x for x in range(10)]
print(l)
使用类型的构造器创建 List:list()
或 list(iterable)
l = list('abc')
print(l)
l = list( (1, 2, 3) )
print(l)
向 List 中添加元素
使用 list.append(x)
方法向列表末尾添加一个元素:
l = ['a','b','c']
l.append('d')
print(l)
使用 list.insert(i, x)
在指定位置插入元素:
l = ['a','b','c','d','e']
l.insert(3, 'x')
print(l)
使用 list.extend(iterable)
在 List 末尾同时添加多个元素:
l = ['a','b','c','d','e']
l.extend(['f','g'])
print(l)
访问 List 中的元素
可通过索引访问 List 元素,List 索引由 0 开始,所以 List 的最后一个元素索引为 len(s) -1
,同时,索引必须为整数。
l = [x + 1 for x in range(10)]
print(l)
# 第一个元素
l[0]
# 最后一个元素
l[len(l) - 1]
访问 List 元素时,允许使用负数,负数索引是指从结尾开始,-1
指最后一项, -2
指倒数第二项。
l = [x + 1 for x in range(10)]
print(l)
# 最后一个元素
l[-1]
# 倒数第二个元素
l[-2]
# 第一个元素
l[-len(l)]
从 List 中删除元素
使用 list.remove(x)
从 List 中删除元素,该方法从 List 中删除第一个值为 x
的元素。未找到指定元素时,触发 ValueError
异常。
l = ['a','b','c','d','e']
l.remove('c')
print(l)
l.remove('x')
print(l)
使用 list.pop([i])
删除 List 中指定位置的元素,并返回被删除的元素。未指定位置时, a.pop()
删除并返回 List 的最后一个元素。(方法签名中 i 两边的方括号表示该参数是可选的,不是要求输入方括号。)
l = ['a','b','c','d','e']
l.pop()
print(l)
l.pop(2)
print(l)
List 切片
切片可以看作是索引的扩展,切片是通过使用下标标记来创建的,在 []
中给出几个以冒号分隔的数字,例如 variable_name[1:3:5]
。方括号(下标)标记在内部使用 slice
对象。既然切片是索引的扩展,那么切片也同样支持负数索引。关于切片,也曾经做过简单的整理,详见 优快云 文章 : 《Python 切片知识整理》。
Notes
List 是序列类型中的一种,支持通用序列操作,如下表所示,详情请参阅官方文档,Python 标准库 - 内置类型:《序列类型 — list, tuple, range》:
运算 | 结果 | 注释 |
---|---|---|
x in s | 如果 s 中的某项等于 x 则结果为 True,否则为 False | (1) |
x not in s | 如果 s 中的某项等于 x 则结果为 False,否则为 True | (1) |
s + t | s 与 t 相拼接 | (6)(7) |
s * n 或 n * s | 相当于 s 与自身进行 n 次拼接 | (2)(7) |
s[i] | s 的第 i 项,起始为 0 | (3) |
s[i:j] | s 从 i 到 j 的切片 | (3)(4) |
s[i:j:k] | s 从 i 到 j 步长为 k 的切片 | (3)(5) |
len(s) | s 的长度 | |
min(s) | s 的最小项 | |
max(s) | s 的最大项 | |
s.index(x[, i[, j]]) | x 在 s 中首次出现项的索引号(索引号在 i 或其后且在 j 之前) | (8) |
s.count(x) | x 在 s 中出现的总次数 |