当前位置:首页>python>Python 列表(list)常用方法 + 列表推导式 超详细完整教程

Python 列表(list)常用方法 + 列表推导式 超详细完整教程

  • 2026-10-11 08:33:13
Python 列表(list)常用方法 + 列表推导式 超详细完整教程

一、列表常用方法(增删改查)

1. 添加元素(增)

① append():在列表末尾添加一个元素

语法:列表.append(元素)
特点:修改原列表,无返回值(返回 None)。

lst = [10, 20, 30]
lst.append(40)
print(lst)  # [10, 20, 30, 40]

# 可以添加任意类型
lst.append("Python")
lst.append([1, 2])  # 嵌套列表
print(lst)  # [10, 20, 30, 40, 'Python', [1, 2]]

② extend():在列表末尾添加多个元素(可迭代对象)

语法:列表.extend(可迭代对象)
特点:把另一个列表/字符串/元组等“拆开来”添加进去。

lst = [10, 20]
lst.extend([30, 40])  # 传入列表
print(lst)  # [10, 20, 30, 40]

lst.extend("ab")  # 传入字符串(拆成字符)
print(lst)  # [10, 20, 30, 40, 'a', 'b']

对比 append vs extend:

a = [1, 2]
a.append([3, 4])  # 整体添加
print(a)  # [1, 2, [3, 4]]

b = [1, 2]
b.extend([3, 4])  # 拆分添加
print(b)  # [1, 2, 3, 4]

③ insert():在指定位置插入元素

语法:列表.insert(索引, 元素)
特点:指定索引处插入,后面元素依次后移。

lst = [10, 30, 40]
lst.insert(1, 20)  # 在索引1的位置插入20
print(lst)  # [10, 20, 30, 40]

# 插入到开头
lst.insert(0, 0)
print(lst)  # [0, 10, 20, 30, 40]

# 插入到末尾(效果等同于append)
lst.insert(len(lst), 50)
print(lst)  # [0, 10, 20, 30, 40, 50]

2. 删除元素(删)

① remove():删除第一个匹配的元素

语法:列表.remove(元素)
特点:

  • • 按值删除,不是按索引。
  • • 删除第一个遇到的匹配项。
  • • 元素不存在会报错 ValueError。
lst = [10, 20, 30, 20]
lst.remove(20)  # 删除第一个20
print(lst)  # [10, 30, 20]

② pop():删除并返回指定索引的元素

语法:列表.pop(索引=-1)
特点:

  • • 不写索引,默认删除最后一个。
  • • 有返回值,返回被删除的元素。
  • • 索引越界会报错 IndexError。
lst = [10, 20, 30]
x = lst.pop()  # 删除最后一个30
print(x)  # 30
print(lst)  # [10, 20]

y = lst.pop(0)  # 删除索引0的10
print(y)  # 10
print(lst)  # [20]

③ clear():清空列表

语法:列表.clear()
特点:删除所有元素,留下空列表 []。

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

3. 修改元素(改)

直接通过索引赋值修改。

lst = [10, 20, 30]
lst[1] = 200
print(lst)  # [10, 200, 30]

4. 查找与排序(查与排)

① index():查找元素第一次出现的索引

语法:列表.index(元素, 开始索引=0, 结束索引=末尾)
返回值:索引值。
不存在报错ValueError。

lst = [10, 20, 30, 20]
print(lst.index(20))  # 1
print(lst.index(20, 2))  # 3(从索引2开始找)

② count():统计元素出现次数

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

③ sort():排序(修改原列表)

语法:列表.sort(key=None, reverse=False)
参数:

  • • key:指定排序规则的函数(如 key=len 按长度排序)。
  • • reverse:True 降序,False 升序(默认)。
lst = [3, 1, 4, 2]
lst.sort()  # 升序
print(lst)  # [1, 2, 3, 4]

lst.sort(reverse=True)  # 降序
print(lst)  # [4, 3, 2, 1]

# 按字符串长度排序
words = ["apple", "banana", "cherry"]
words.sort(key=len)
print(words)  # ['apple', 'cherry', 'banana']

④ reverse():反转列表(修改原列表)

语法:列表.reverse()

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

二、列表推导式(List Comprehension)

1. 什么是列表推导式?

一种简洁创建、处理列表的方式。
语法:[表达式 for 变量 in 可迭代对象 if 条件]

优点:

  • • 一行代码实现循环+条件,代码更简洁。
  • • 效率通常高于 for 循环 append。

2. 基础语法

① 基础循环

# 普通写法
lst = []
for i inrange(5):
    lst.append(i)
print(lst)  # [0, 1, 2, 3, 4]

# 列表推导式
lst = [i for i inrange(5)]
print(lst)  # [0, 1, 2, 3, 4]

② 带表达式

# 生成 0-9 的平方
squares = [x**2for x inrange(10)]
print(squares)  # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

③ 带条件判断

# 筛选 0-9 中的偶数
even_numbers = [x for x inrange(10) if x % 2 == 0]
print(even_numbers)  # [0, 2, 4, 6, 8]

④ 多重循环(嵌套)

# 普通写法
result = []
for i inrange(1, 4):
for j inrange(1, 4):
        result.append((i, j))
print(result)  # [(1, 1), (1, 2), (1, 3), (2, 1), (2, 2), (2, 3), (3, 1), (3, 2), (3, 3)]

# 列表推导式
result = [(i, j) for i inrange(1, 4) for j inrange(1, 4)]
print(result)  # 同上

⑤ 带 if-else 表达式

# 偶数变平方,奇数变自身
nums = [1, 2, 3, 4, 5]
new_nums = [x**2if x % 2 == 0else x for x in nums]
print(new_nums)  # [1, 4, 3, 16, 5]

三、易错点总结

  1. 1. append vs extend:
    • • append 添加整体,extend 拆分添加。
  2. 2. remove 按值删,pop 按索引删并返回。
  3. 3. 切片 lst[:] 是复制,lst = [] 是重新赋值。
  4. 4. 列表推导式复杂逻辑可读性差,简单逻辑用它,复杂逻辑用 for 循环。
  5. 5. sort() 修改原列表,sorted() 函数返回新列表,原列表不变。

📚 综合练习题(带详细讲解)

练习1:append vs extend

写出运行结果:

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

b = [1, 2]
b.extend([3, 4])
print(b)

答案:

[1, 2, [3, 4]]
[1, 2, 3, 4]

讲解:append 整体添加,extend 拆分添加。


练习2:列表推导式

用列表推导式生成 1-10 中能被 3 整除的数的平方列表。

result = [x**2for x inrange(1, 11) if x % 3 == 0]
print(result)

答案:[9, 36, 81]
讲解:遍历 1-10,筛选能被3整除的,计算平方。


练习3:sort 与 reverse

写出运行结果:

lst = [3, 1, 4, 2]
lst.sort(reverse=True)
print(lst)

lst.reverse()
print(lst)

答案:

[4, 3, 2, 1]
[1, 2, 3, 4]

讲解:先降序排序,再反转列表。


📝 本章超级总结

列表常用方法

方法
作用
特点
append(x)
末尾加一个
改原列表
extend(iter)
末尾加多个
改原列表
insert(i, x)
索引i处加x
改原列表
remove(x)
删除第一个x
改原列表,无返回
pop(i=-1)
删除并返回i处
改原列表,有返回
clear()
清空
改原列表
sort()
排序
改原列表
reverse()
反转
改原列表

列表推导式

  • • 基础:[x for x in iter]
  • • 带条件:[x for x in iter if cond]
  • • 带表达式:[func(x) for x in iter]
  • • 嵌套:[x for i in iter1 for x in iter2]

最新文章

随机文章