Python 列表操作详解
列表是 Python 中最常用的数据结构之一,它允许你存储一系列有序的元素。本文将详细介绍列表的各种操作,包括成员检查、连接、重复和切片,并通过示例代码帮助你快速上手。
1. 成员检查 (Membership Tests)
成员检查用于判断一个元素是否存在于列表中。Python 提供了 in
和 not in
运算符来实现这个功能。
python
l = ["宝马", "Z4", "红色"]
# 检查 "红色" 是否在列表 l 中
print("红色" in l) # 输出: True
# 检查 "金色" 是否在列表 l 中
print("金色" in l) # 输出: False
# 检查 "金色" 是否不在列表 l 中
print("金色" not in l) # 输出: True
拓展: in
和 not in
运算符不仅可以用于列表,还可以用于字符串、元组、集合和字典等数据类型。
2. 列表连接 (Concatenation)
连接操作用于将两个列表合并成一个新的列表。可以使用 +
运算符或者 +=
运算符来实现。
使用 +
运算符
+
运算符会创建一个新的列表,包含两个原始列表的所有元素。
python
l = ["宝马", "Z4"]
k = [2019, "红色"]
# 连接列表 l 和 k
new_list = l + k
print(new_list) # 输出: ['宝马', 'Z4', 2019, '红色']
使用 +=
运算符
+=
运算符直接修改原始列表,将另一个列表的元素添加到原始列表的末尾。
python
l = ["宝马", "Z4"]
# 将列表 [2019, "红色"] 添加到列表 l 中
l += [2019, "红色"]
print(l) # 输出: ['宝马', 'Z4', 2019, '红色']
注意: +
运算符会创建新的列表,而 +=
运算符会修改原始列表。选择哪种方式取决于你的需求。 如果需要保留原始列表,应该使用 +
运算符。
3. 列表重复 (Repetition)
重复操作用于将列表中的元素重复指定的次数。可以使用 *
运算符来实现。
python
l = [1, 2]
# 将列表 l 重复 3 次
repeated_list = l * 3
print(repeated_list) # 输出: [1, 2, 1, 2, 1, 2]
4. 列表切片 (Slicing)
切片操作用于获取列表的一个子集。可以使用 l[i:j:k]
的形式来指定切片的起始索引、结束索引和步长。
i
: 起始索引(包含该位置的元素),默认为 0。j
: 结束索引(不包含该位置的元素),默认为列表的长度。k
: 步长,表示每隔多少个元素取一个,默认为 1。
基本切片
python
l = ["宝马", "Z4", 2019, 4, "红色", True]
# 获取索引 1 到 3 (不包含 4) 的元素
print(l[1:4]) # 输出: ['Z4', 2019, 4]
指定步长
python
l = ["宝马", "Z4", 2019, 4, "红色", True]
# 从索引 1 开始,到索引 3 (不包含 4) 结束,步长为 2
print(l[1:4:2]) # 输出: ['Z4', 4]
使用默认值
python
l = ["宝马", "Z4", 2019, 4, "红色", True]
# 从索引 2 开始到列表末尾
print(l[2:]) # 输出: [2019, 4, '红色', True]
# 从列表开头到索引 3 (不包含 4)
print(l[:4]) # 输出: ['宝马', 'Z4', 2019, 4]
使用负索引
负索引表示从列表末尾开始计数。例如,l[-1]
表示列表的最后一个元素,l[-2]
表示倒数第二个元素。
python
l = ["宝马", "Z4", 2019, 4, "红色", True]
# 获取最后 4 个元素
print(l[-4:]) # 输出: [2019, 4, '红色', True]
# 获取从列表开头到倒数第 2 个元素 (不包含倒数第 2 个元素)
print(l[:-2]) # 输出: ['宝马', 'Z4', 2019, 4]
# 获取倒数第 4 个到倒数第 2 个元素 (不包含倒数第 1 个元素)
print(l[-4:-1]) # 输出: [2019, 4, '红色']
切片赋值
切片操作还可以用于替换列表中的多个元素。
python
l = ["宝马", "Z4", 2019, 4, "红色", True]
# 将列表的前两个元素替换为 ["起亚", "索奈"]
l[:2] = ["起亚", "索奈"]
print(l) # 输出: ['起亚', '索奈', 2019, 4, '红色', True]
l = ["宝马", "Z4", 2019, 4, "红色", True]
# 将索引 1,3 的元素替换为 "索奈" 和 2
l[1:5:2] = ["索奈", 2]
print(l) # 输出: ['宝马', '索奈', 2019, 2, '红色', True]
注意: 切片赋值时,赋值的列表长度可以与切片的长度不一致,Python 会自动调整列表的长度。
切片删除
可以使用 del
语句和切片操作来删除列表中的多个元素。
python
l = ["宝马", "Z4", 2019, 4, "红色", True]
# 删除列表的前两个元素
del l[:2]
print(l) # 输出: [2019, 4, '红色', True]
l = ["宝马", "Z4", 2019, 4, "红色", True]
# 删除索引 0,2,4 的元素
del l[:5:2]
print(l) # 输出: ['Z4', 4, True]