列表操作
我们可以对列表(项的集合)执行各种操作,例如成员检查、连接、重复和切片。
成员检查 (Membership)
in
和 not 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]