推导式有时也被称为生成式。
推导式(Comprehension)是一种快速创建容器便捷语法。
例如,我们要创建一个长度为 10,元素值为 \(x^2\) 的列表,可以使用循环进行实现:
但是这样略显麻烦,使用推导式可以更简单的实现。列表的推导式为一对方括号([]
)包裹的 值的循环表达式:
表达式 x**2
用于计算元素的值
循环 for x in range(10)
为 x
赋值
并且,推导式可以使用多层循环,例如生成九九乘法表:
集合和字典也可以使用推导式进行生成。
集合的推导式为一对花括号({}
)包裹的 值的循环表达式:
字典的推导式为一对花括号({}
)包裹的 键值对的循环表达式:
# 字典推导式
numbers_dict:dict[int] = {x : x**2 for x in range(10)}
print(numbers_dict)
元组不支持推导式,因为圆括号(()
)的语法被 生成器
使用,但可以通过 tuple
函数转换为元组。
生成器
将在后面的内容中进行学习。