在 Python 中,list
(列表)是一种非常常见的数据结构,它是一个有序、可变的集合,可以包含多个元素(包括不同类型的元素)。Python 提供了丰富的操作来处理列表,下面我将详细介绍常见的列表操作。
你可以通过方括号 []
来创建一个列表。
# 创建一个空列表
empty_list = []
# 创建一个包含多个元素的列表
fruits = ["apple", "banana", "cherry"]
# 列表可以包含不同类型的元素
mixed_list = [1, "apple", 3.14, True]
使用索引来访问列表中的元素。Python 的索引是从 0
开始的。
fruits = ["apple", "banana", "cherry"]
# 访问第一个元素
print(fruits[0]) # 输出: "apple"
# 访问最后一个元素
print(fruits[-1]) # 输出: "cherry"
可以使用切片(slicing)来访问列表的一个子集。语法是 list[start:end:step]
。
fruits = ["apple", "banana", "cherry", "date", "elderberry"]
# 获取从索引 1 到 3(不包括 3)的子列表
print(fruits[1:3]) # 输出: ["banana", "cherry"]
# 从索引 2 到结束的子列表
print(fruits[2:]) # 输出: ["cherry", "date", "elderberry"]
# 获取前 3 个元素
print(fruits[:3]) # 输出: ["apple", "banana", "cherry"]
# 获取列表的所有元素
print(fruits[:]) # 输出: ["apple", "banana", "cherry", "date", "elderberry"]
# 每隔 2 个元素取一个
print(fruits[::2]) # 输出: ["apple", "cherry", "elderberry"]
你可以通过索引修改列表中的元素。
fruits = ["apple", "banana", "cherry"]
# 修改第二个元素
fruits[1] = "blueberry"
print(fruits) # 输出: ["apple", "blueberry", "cherry"]
append()
将一个元素添加到列表的末尾。
fruits = ["apple", "banana"]
fruits.append("cherry")
print(fruits) # 输出: ["apple", "banana", "cherry"]
insert()
在指定位置插入一个元素。insert(index, element)
。
fruits = ["apple", "banana", "cherry"]
# 在索引 1 的位置插入一个元素
fruits.insert(1, "blueberry")
print(fruits) # 输出: ["apple", "blueberry", "banana", "cherry"]
extend()
将一个可迭代对象(如列表)中的所有元素添加到当前列表的末尾。
fruits = ["apple", "banana"]
fruits.extend(["cherry", "date"])
print(fruits) # 输出: ["apple", "banana", "cherry", "date"]
remove()
删除列表中第一个匹配的指定元素,如果元素不存在,会引发 ValueError
。
fruits = ["apple", "banana", "cherry", "banana"]
# 删除第一个 "banana"
fruits.remove("banana")
print(fruits) # 输出: ["apple", "cherry", "banana"]
pop()
删除并返回指定索引位置的元素,默认删除最后一个元素。
fruits = ["apple", "banana", "cherry"]
# 删除并返回最后一个元素
last_fruit = fruits.pop()
print(last_fruit) # 输出: "cherry"
print(fruits) # 输出: ["apple", "banana"]
# 删除并返回指定索引位置的元素
first_fruit = fruits.pop(0)
print(first_fruit) # 输出: "apple"
print(fruits) # 输出: ["banana"]
clear()
删除列表中的所有元素。
fruits = ["apple", "banana", "cherry"]
fruits.clear()
print(fruits) # 输出: []
index()
返回列表中第一个匹配的元素的索引。如果元素不存在,会引发 ValueError
。
fruits = ["apple", "banana", "cherry"]
# 查找元素 "banana" 的索引
index = fruits.index("banana")
print(index) # 输出: 1
count()
返回列表中指定元素的出现次数。
fruits = ["apple", "banana", "cherry", "banana"]
# 统计 "banana" 出现的次数
count = fruits.count("banana")
print(count) # 输出: 2
sort()
原地排序列表,按升序排列。
fruits = ["banana", "cherry", "apple"]
# 对列表进行升序排序
fruits.sort()
print(fruits) # 输出: ["apple", "banana", "cherry"]
sorted()
返回一个新排序的列表,原列表不变。
fruits = ["banana", "cherry", "apple"]
# 获取排序后的新列表
sorted_fruits = sorted(fruits)
print(sorted_fruits) # 输出: ["apple", "banana", "cherry"]
print(fruits) # 原列表不变: ["banana", "cherry", "apple"]
reverse()
原地反转列表中的元素顺序。
fruits = ["banana", "cherry", "apple"]
# 对列表进行反转
fruits.reverse()
print(fruits) # 输出: ["apple", "cherry", "banana"]
列表推导式是 Python 提供的一种简洁的方法,用于根据某些条件或操作创建新列表。
# 生成一个包含 0 到 9 的平方的列表
squares = [x**2 for x in range(10)]
print(squares) # 输出: [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
# 过滤出所有的偶数
even_numbers = [x for x in range(10) if x % 2 == 0]
print(even_numbers) # 输出: [0, 2, 4, 6, 8]
fruits = ["apple", "banana", "cherry"]
# 使用切片复制列表
fruits_copy = fruits[:]
# 使用 list() 函数复制
fruits_copy = list(fruits)
fruits1 = ["apple", "banana"]
fruits2 = ["cherry", "date"]
# 使用 + 运算符连接两个列表
fruits_combined = fruits1 + fruits2
print(fruits_combined) # 输出: ["apple", "banana", "cherry", "date"]
Python 的列表是非常灵活且功能强大的数据结构,支持各种常见操作,如: