x= (i for i in range(3))
print(x)
for j in x:
print(j)
for i in x:
print(i)
输出/输出: 0 1 2
请解释一下代码,我无法理解这段代码
我期望这段代码打印 0 1 2 0 1 2 但解决方案是 0 1 2
x
不是元组。 x
是一个发电机。打印 x
后,您已经消耗了生成器中的所有内容,因此它位于末尾,并且没有任何内容可供 for
语句使用。如果需要重用数据,请将其转换为元组:
x = tuple(i for i in range(3))
甚至
x = tuple(range(3))