推导式就是 Python 里快速生成列表、字典、集合的 “快捷写法”,不用写繁琐的 for 循环,一行代码搞定,代码更简洁、运行更快。


一、推导式有 3 种(最常用)

  1. 列表推导式 [ ] → 生成列表
  2. 字典推导式 { } → 生成字典
  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 序列]

六、为什么要用推导式?

  1. 代码短:多行变一行
  2. 速度快:比普通 for 循环效率高
  3. Python 风格:工作中最常用

总结

  1. 推导式 = 快速生成 列表 / 字典 / 集合 的一行代码
  2. 公式:[表达式 for 变量 in 对象 if 条件]
  3. 列表 []、字典 / 集合 {}
  4. 先会列表推导式,其他两个一模一样
Logo

小龙虾开发者社区是 CSDN 旗下专注 OpenClaw 生态的官方阵地,聚焦技能开发、插件实践与部署教程,为开发者提供可直接落地的方案、工具与交流平台,助力高效构建与落地 AI 应用

更多推荐