在Python中,推导式(comprehensions)是一种简洁的方式来创建列表、字典、集合等数据结构。推导式可以使代码更加简洁和易读。以下是一些常见的推导式示例:
列表推导式
- 列表推导式用于创建新的列表,基本语法如下
[表达式 for 元素 in 可迭代对象 if 条件]
例如,创建一个包含1到10的平方数列表:
squares = [x**2 for x in range(1, 11)]
print(squares) # 输出: [1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]
字典推导式
- 字典推导式用于创建新的字典,基本语法如下:
{键表达式: 值表达式 for 元素 in 可迭代对象 if 条件}
例如,创建一个包含1-10的平方数的字典
squares_dict = {x: x**2 for x in range(1, 11)}
print(squares_dict) # 输出: {1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81, 10: 100}
{1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81, 10: 100}
集合推导式
- 集合推导式用于创建新的集合,基本语法如下:
{表达式 for 元素 in 可迭代对象 if 条件}
例如,创建一个包含1-10的平方数集合
squares_set = {x**2 for x in range(1, 11)}
print(squares_set) # 输出: {1, 4, 9, 16, 25, 36, 49, 64, 81, 100}
{64, 1, 4, 36, 100, 9, 16, 49, 81, 25}
生成器表达式
生成器表达式与列表推导式类似,但使用圆括号而不是方括号,并且不会立即生成所有元素,而是按需生成,基本语法如下:
(表达式 for 元素 in 可迭代对象 if 条件)
例如,创建一个生成器表达式来生成1-10的平方数:
squares_gen = (x**2 for x in range(1, 11))
for square in squares_gen:
print(square) # 输出: 1 4 9 16 25 36 49 64 81 100
1
4
9
16
25
36
49
64
81
100