国际访客建议访问 Primers 编程伙伴 国际版站点 > Python 教程 > 推导式 以获得更好的体验。

# Python 的推导式(Comprehension)

推导式有时也被称为生成式。

推导式(Comprehension)是一种快速创建容器便捷语法。

# 列表推导式

例如,我们要创建一个长度为 10,元素值为 \(x^2\) 的列表,可以使用循环进行实现:

运行示例

numbers:list[int] = []
for x in range(10):
    numbers.append(x**2)
print(numbers)

但是这样略显麻烦,使用推导式可以更简单的实现。列表的推导式为一对方括号([])包裹的 值的循环表达式

运行示例

# 列表推导式
numbers:list[int] = [x**2 for x in range(10)]
print(numbers)
  • 表达式 x**2 用于计算元素的值

  • 循环 for x in range(10)x 赋值

并且,推导式可以使用多层循环,例如生成九九乘法表:

运行示例

# 列表推导式
numbers:list[int] = [x*y for x in range(1, 10) for y in range(1, 10)]
print(numbers)

# 集合和字典的推导式

集合和字典也可以使用推导式进行生成。

集合的推导式为一对花括号({})包裹的 值的循环表达式

运行示例

# 集合推导式
numbers_set:set[int] = {x**2 for x in range(10)}
print(numbers_set)

字典的推导式为一对花括号({})包裹的 键值对的循环表达式

# 字典推导式
numbers_dict:dict[int] = {x : x**2 for x in range(10)}
print(numbers_dict)

# 元组的推导式

元组不支持推导式,因为圆括号(())的语法被 生成器 使用,但可以通过 tuple 函数转换为元组。

生成器 将在后面的内容中进行学习。

运行示例

# 尝试元组导式
numbers:tuple[int] = (x**2 for x in range(10))
print(numbers)
print(tuple(numbers))    # 通过 tuple 函数转换为元组
本文 更新于: 2025-06-19 01:15:26 创建于: 2025-06-19 01:15:26