我有2条声明
# Generator expression
squares_gen = (x**2 for x in range(10))
# Tuple comprehension
squares_tuple = (x**2 for x in range(10))
python如何理解第一个语句是生成器而第二个语句是元组?
# Generator expression
squares_gen = (x**2 for x in range(10))
# Tuple comprehension
squares_tuple = (x**2 for x in range(10))
for square in squares_gen:
print(square)
print(squares_tuple)
我想了解Python如何以不同的方式处理它们
不存在元组理解这样的东西。
squares_tuple
仍然是一个发电机。
>>> squares_tuple = (x**2 for x in range(10))
>>> type(squares_tuple)
<class 'generator'>
因为生成器是一个可迭代的值,所以您可以将其传递给
tuple
来创建一个元组。
>>> tuple(squares_tuple)
(0, 1, 4, 9, 16, 25, 36, 49, 64, 81)