Python 推导式
·
推导式就是 Python 里快速生成列表、字典、集合的 “快捷写法”,不用写繁琐的 for 循环,一行代码搞定,代码更简洁、运行更快。
一、推导式有 3 种(最常用)
- 列表推导式
[ ]→ 生成列表 - 字典推导式
{ }→ 生成字典 - 集合推导式
{ }→ 生成集合
核心公式(通用):
[ 表达式 for 变量 in 可迭代对象 if 条件 ]
- 先看
for循环 - 再看前面的表达式(要生成什么)
- 最后看
if条件(可选,过滤用)
二、列表推导式(最常用)
1. 最简单:生成列表
# 普通写法
nums = []
for i in range(5):
nums.append(i)
# 推导式写法(一行搞定)
nums = [i for i in range(5)]
print(nums) # [0, 1, 2, 3, 4]
2. 带计算:生成处理后的数据
# 生成 0~4 的平方
squares = [i**2 for i in range(5)]
print(squares) # [0, 1, 4, 9, 16]
3. 带条件:过滤数据(if)
# 只保留偶数
even_nums = [i for i in range(10) if i % 2 == 0]
print(even_nums) # [0, 2, 4, 6, 8]
4. 带 if-else:判断生成
# 偶数保留,奇数变成 0
result = [i if i%2==0 else 0 for i in range(10)]
print(result) # [0,0,2,0,4,0,6,0,8,0]
三、字典推导式
用 { key: value } 格式,快速生成字典。
例子:把列表转成字典
# 普通列表 → 字典:索引当 key,值当 value
lst = ["a", "b", "c"]
my_dict = {i: lst[i] for i in range(len(lst))}
print(my_dict) # {0: 'a', 1: 'b', 2: 'c'}
例子:键值互换
original = {"name": "Tom", "age": 18}
new_dict = {v: k for k, v in original.items()}
print(new_dict) # {'Tom': 'name', 18: 'age'}
四、集合推导式
和列表推导式一样,但自动去重。
lst = [1, 2, 2, 3, 3, 3]
s = {i for i in lst}
print(s) # {1,2,3}
五、初学者必背 3 个经典模板
1. 基础生成
[表达式 for 变量 in 序列]
2. 带过滤
[表达式 for 变量 in 序列 if 条件]
3. 带判断
[真值 if 条件 else 假值 for 变量 in 序列]
六、为什么要用推导式?
- 代码短:多行变一行
- 速度快:比普通 for 循环效率高
- Python 风格:工作中最常用
总结
- 推导式 = 快速生成 列表 / 字典 / 集合 的一行代码
- 公式:
[表达式 for 变量 in 对象 if 条件] - 列表
[]、字典 / 集合{} - 先会列表推导式,其他两个一模一样
更多推荐



所有评论(0)