元组理解生成意外输出
Tuple comprehension is generating unexpected output
x=(y for y in range(100) if y%2==0 and y%5==0)
print(x)
这给出了类似 -
的输出
<generator object <genexpr> at 0x00000222B1C3CC80>
您可以执行以下操作
x=tuple(y for y in range(100) if y%2==0 and y%5==0)
您可以使用tuple()
函数进行转换。
x = (y for y in range(100) if y % 2 == 0 and y % 5 == 0)
print(tuple(x))
# (0, 10, 20, 30, 40, 50, 60, 70, 80, 90)
元组理解不是一回事。检查 this SO post 以了解原因。
改为这样做:
x = tuple(y for y in range(100) if y%2==0 and y%5==0)
这使用 tuple()
构造函数从生成器对象创建元组。您可以使用此构造函数从迭代器或可迭代对象生成的元素创建元组。所以,这段代码是有效的,因为生成器对象可以用作迭代器。
x=(y for y in range(100) if y%2==0 and y%5==0)
print(x)
这给出了类似 -
的输出<generator object <genexpr> at 0x00000222B1C3CC80>
您可以执行以下操作
x=tuple(y for y in range(100) if y%2==0 and y%5==0)
您可以使用tuple()
函数进行转换。
x = (y for y in range(100) if y % 2 == 0 and y % 5 == 0)
print(tuple(x))
# (0, 10, 20, 30, 40, 50, 60, 70, 80, 90)
元组理解不是一回事。检查 this SO post 以了解原因。
改为这样做:
x = tuple(y for y in range(100) if y%2==0 and y%5==0)
这使用 tuple()
构造函数从生成器对象创建元组。您可以使用此构造函数从迭代器或可迭代对象生成的元素创建元组。所以,这段代码是有效的,因为生成器对象可以用作迭代器。