【Python】list(列表):有序、可变的集合

在 Python 中,list(列表)是一种非常常见的数据结构,它是一个有序、可变的集合,可以包含多个元素(包括不同类型的元素)。Python 提供了丰富的操作来处理列表,下面我将详细介绍常见的列表操作。

1. 创建列表

你可以通过方括号 [] 来创建一个列表。

# 创建一个空列表
empty_list = []

# 创建一个包含多个元素的列表
fruits = ["apple", "banana", "cherry"]

# 列表可以包含不同类型的元素
mixed_list = [1, "apple", 3.14, True]

2. 访问列表元素

使用索引来访问列表中的元素。Python 的索引是从 0 开始的。

fruits = ["apple", "banana", "cherry"]

# 访问第一个元素
print(fruits[0])  # 输出: "apple"

# 访问最后一个元素
print(fruits[-1])  # 输出: "cherry"

3. 切片操作

可以使用切片(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"]

4. 修改列表元素

你可以通过索引修改列表中的元素。

fruits = ["apple", "banana", "cherry"]

# 修改第二个元素
fruits[1] = "blueberry"
print(fruits)  # 输出: ["apple", "blueberry", "cherry"]

5. 添加元素

5.1 append()

将一个元素添加到列表的末尾。

fruits = ["apple", "banana"]
fruits.append("cherry")
print(fruits)  # 输出: ["apple", "banana", "cherry"]
5.2 insert()

在指定位置插入一个元素。insert(index, element)

fruits = ["apple", "banana", "cherry"]

# 在索引 1 的位置插入一个元素
fruits.insert(1, "blueberry")
print(fruits)  # 输出: ["apple", "blueberry", "banana", "cherry"]
5.3 extend()

将一个可迭代对象(如列表)中的所有元素添加到当前列表的末尾。

fruits = ["apple", "banana"]
fruits.extend(["cherry", "date"])
print(fruits)  # 输出: ["apple", "banana", "cherry", "date"]

6. 删除元素

6.1 remove()

删除列表中第一个匹配的指定元素,如果元素不存在,会引发 ValueError

fruits = ["apple", "banana", "cherry", "banana"]

# 删除第一个 "banana"
fruits.remove("banana")
print(fruits)  # 输出: ["apple", "cherry", "banana"]
6.2 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"]
6.3 clear()

删除列表中的所有元素。

fruits = ["apple", "banana", "cherry"]
fruits.clear()
print(fruits)  # 输出: []

7. 查找元素

7.1 index()

返回列表中第一个匹配的元素的索引。如果元素不存在,会引发 ValueError

fruits = ["apple", "banana", "cherry"]

# 查找元素 "banana" 的索引
index = fruits.index("banana")
print(index)  # 输出: 1
7.2 count()

返回列表中指定元素的出现次数。

fruits = ["apple", "banana", "cherry", "banana"]

# 统计 "banana" 出现的次数
count = fruits.count("banana")
print(count)  # 输出: 2

8. 排序

8.1 sort()

原地排序列表,按升序排列。

fruits = ["banana", "cherry", "apple"]

# 对列表进行升序排序
fruits.sort()
print(fruits)  # 输出: ["apple", "banana", "cherry"]
8.2 sorted()

返回一个新排序的列表,原列表不变。

fruits = ["banana", "cherry", "apple"]

# 获取排序后的新列表
sorted_fruits = sorted(fruits)
print(sorted_fruits)  # 输出: ["apple", "banana", "cherry"]
print(fruits)  # 原列表不变: ["banana", "cherry", "apple"]
8.3 reverse()

原地反转列表中的元素顺序。

fruits = ["banana", "cherry", "apple"]

# 对列表进行反转
fruits.reverse()
print(fruits)  # 输出: ["apple", "cherry", "banana"]

9. 列表推导式 (List Comprehension)

列表推导式是 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]

10. 其他常用操作

10.1 复制列表
fruits = ["apple", "banana", "cherry"]

# 使用切片复制列表
fruits_copy = fruits[:]

# 使用 list() 函数复制
fruits_copy = list(fruits)
10.2 连接两个列表
fruits1 = ["apple", "banana"]
fruits2 = ["cherry", "date"]

# 使用 + 运算符连接两个列表
fruits_combined = fruits1 + fruits2
print(fruits_combined)  # 输出: ["apple", "banana", "cherry", "date"]

11. 总结

Python 的列表是非常灵活且功能强大的数据结构,支持各种常见操作,如:

  • 访问元素切片
  • 添加元素删除元素修改元素
  • 查找元素统计元素排序反转
  • 列表推导式,快速生成列表。

你可能感兴趣的:(Python基础,list,列表,集合,python)