跳到主要内容

列表(List)

列表的基本概念

  • 列表是 Python 中最常用的可变容器类型
  • 可以存储任意数量、任意类型的元素
  • [] 定义,用逗号分隔元素
numbers = [1, 2, 3]
mixed = [1, "hello", True]
empty = []

列表索引与切片

📌 索引(Index)

  • 0 开始:第一个元素是索引 0
  • 支持负索引:-1 表示最后一个元素
fruits = ["apple", "banana", "cherry"]
print(fruits[0]) # apple
print(fruits[-1]) # cherry

📌 切片(Slicing)

  • 语法:list[start:end:step]
  • 不包含 end 位置
nums = [10, 20, 30, 40, 50]
print(nums[1:4]) # [20, 30, 40]
print(nums[:3]) # [10, 20, 30]
print(nums[::2]) # [10, 30, 50]

添加和删除元素

📌 添加元素

fruits = ["apple", "banana"]

fruits.append("cherry") # 添加到末尾
fruits.insert(1, "orange") # 插入到指定位置
fruits += ["grape"] # 扩展列表

📌 删除元素

fruits.remove("banana")        # 按值删除(只删第一个)
fruits.pop() # 删除并返回最后一个元素
fruits.pop(1) # 删除指定位置
del fruits[0] # 用 del 删除元素

常用方法

方法作用
.append(x)添加元素到末尾
.insert(i, x)在索引 i 处插入元素 x
.remove(x)移除第一个值为 x 的元素
.pop(i=-1)移除并返回索引 i 的元素
.index(x)返回 x 第一次出现的索引
.count(x)返回 x 出现的次数
.sort()就地排序
.reverse()就地反转
.copy()浅拷贝
.clear()清空列表

🔹 .append(x) — 添加元素到列表末尾

colors = ["red", "green"]
colors.append("blue")
print(colors) # ['red', 'green', 'blue']

🔹 .insert(i, x) — 在索引 i 处插入元素 x

colors = ["red", "green"]
colors.insert(1, "yellow")
print(colors) # ['red', 'yellow', 'green']

🔹 .remove(x) — 删除第一个值为 x 的元素

colors = ["red", "green", "red"]
colors.remove("red")
print(colors) # ['green', 'red']

🔹 .pop([i]) — 删除并返回指定索引的元素(默认最后一个)

colors = ["red", "green", "blue"]
last = colors.pop()
print(last) # blue
print(colors) # ['red', 'green']

first = colors.pop(0)
print(first) # red

🔹 .index(x) — 返回元素 x 第一次出现的索引

nums = [10, 20, 30, 20]
idx = nums.index(20)
print(idx) # 1

🔹 .count(x) — 统计 x 在列表中出现的次数

nums = [1, 2, 2, 3, 2]
print(nums.count(2)) # 3

🔹 .sort() — 对列表进行升序排序(原地排序)

nums = [4, 2, 5, 1]
nums.sort()
print(nums) # [1, 2, 4, 5]

可选:降序排序

nums.sort(reverse=True)
print(nums) # [5, 4, 2, 1]

🔹 .reverse() — 将列表中的元素原地反转

nums = [1, 2, 3]
nums.reverse()
print(nums) # [3, 2, 1]

🔹 .copy() — 浅拷贝列表

a = [1, 2, 3]
b = a.copy()
b.append(4)
print(a) # [1, 2, 3]
print(b) # [1, 2, 3, 4]

🔹 .clear() — 清空列表中的所有元素

data = [1, 2, 3]
data.clear()
print(data) # []

嵌套列表(二维列表)

📌 什么是嵌套列表?

  • 列表中的元素也可以是列表,形成二维结构
  • 常用于表示表格、矩阵、坐标系等数据结构
matrix = [
[1, 2, 3],
[4, 5, 6],
[7, 8, 9]
]

📌 访问嵌套列表的元素

  • 使用两个索引:matrix[row][column]
print(matrix[0][0])  # 1
print(matrix[1][2]) # 6

📌 修改嵌套元素

matrix[2][1] = 88
print(matrix[2]) # [7, 88, 9]

📌 遍历嵌套列表

for row in matrix:
for item in row:
print(item, end=" ")
# 输出:1 2 3 4 5 6 7 88 9

遍历列表(List Traversal)

📌 使用 for 遍历列表

names = ["Alice", "Bob", "Charlie"]

for name in names:
print("Hello", name)

📌 使用 range(len(list)) 遍历索引

nums = [10, 20, 30]

for i in range(len(nums)):
print(i, "=>", nums[i])

📌 使用 enumerate() 同时获取索引和值

colors = ["red", "green", "blue"]

for idx, color in enumerate(colors):
print(idx, color)

📌 列表推导式(List Comprehension)基础

列表推导是一种快速生成新列表的方法:

squares = [x ** 2 for x in range(5)]
print(squares) # [0, 1, 4, 9, 16]

也可以添加条件:

evens = [x for x in range(10) if x % 2 == 0]
print(evens) # [0, 2, 4, 6, 8]

📚 总结

内容示例或说明
嵌套列表matrix[1][2] 访问行列元素
列表遍历for item in list, for i in range()
enumerate同时获取索引和值
推导式[x for x in list if 条件]