Skip to content

列表操作

我们可以对列表(项的集合)执行各种操作,例如成员检查、连接、重复和切片。

成员检查 (Membership)

innot in 可用于检测列表中某一项是否存在。

python
>>> l = ["宝马", "Z4", "红色"]
>>> "红色" in l
True
>>> "金色" in l
False
>>> "金色" not in l
True

连接 (Concatenation)

+ 运算符可用于连接两个列表以创建新列表。

python
>>> l = ["宝马", "Z4"]
>>> k = [2019, "红色"]
>>> l + k
['宝马', 'Z4', 2019, '红色']

+= 运算符连接两个列表并将结果赋给目标列表。

python
>>> l = ["宝马", "Z4"]
>>> l += [2019, "红色"]
>>> l
['宝马', 'Z4', 2019, '红色']

重复 (Repetition)

* 运算符将列表的项重复整数操作数指定的次数。

python
>>> l = [1, 2]
>>> l*3
[1, 2, 1, 2, 1, 2]

切片 (Slicing)

可以使用列表切片表示法 l[i:j] 获取列表 l 的子集,其中包含开始索引 i 处的项,但不包含结束索引 j 处的项。

例如,切片表示法 [1:4] 指的是从索引 1 到索引 3(即 4-1)的项。

python
>>> l = ["宝马", "Z4", 2019,
...       4, "红色", True]
>>> l[1:4]
['Z4', 2019, 4]

切片表示法 l[i:j:k] 还可以包含第三个数字,称为步长 (stepper)。这里,列表从开始索引 i 切片到结束索引 (j) - 1,步长为 k 个项。

python
>>> l = ["宝马", "Z4", 2019,
...       4, "红色", True]
>>> l[1:4:2]
['Z4', 4]

切片表示法也有一些有用的默认值。第一个数字的默认值是 0,第二个数字的默认值是列表的大小。

python
>>> l = ["宝马", "Z4", 2019,
...       4, "红色", True]
>>> l[2:]
[2019, 4, '红色', True]
>>> l[:4]
['宝马', 'Z4', 2019, 4]

切片表示法也支持负索引。

python
>>> l = ["宝马", "Z4", 2019,
...       4, "红色", True]
>>> l[-4:]
[2019, 4, '红色', True]
>>> l[:-2]
['宝马', 'Z4', 2019, 4]
>>> l[-4:-1]
[2019, 4, '红色']

切片表示法可用于替换列表中的多个项。

python
>>> l = ["宝马", "Z4", 2019,
...       4, "红色", True]
>>> l[:2] = ["起亚", "索奈"] # Kia, Sonet
>>> l
['起亚', '索奈', 2019, 4, '红色', True]

>>> l = ["宝马", "Z4", 2019,
...       4, "红色", True]
>>> l[1:5:2] = ["索奈", 2] # Sonet
>>> l
['宝马', '索奈', 2019, 2, '红色', True]

切片表示法也可用于删除列表中的多个项。

python
>>> l = ["宝马", "Z4", 2019,
...       4, "红色", True]
>>> del l[:2]
>>> l
[2019, 4, '红色', True]

>>> l = ["宝马", "Z4", 2019,
...       4, "红色", True]
>>> del l[:5:2]
>>> l
['Z4', 4, True]