Python 中的元组不理解输出

问题描述 投票:0回答:1
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

python loops tuples
1个回答
1
投票

x
不是元组。
x
是一个发电机。打印
x
后,您已经消耗了生成器中的所有内容,因此它位于末尾,并且没有任何内容可供
for
语句使用。如果需要重用数据,请将其转换为元组:

x = tuple(i for i in range(3))

甚至

x = tuple(range(3))
© www.soinside.com 2019 - 2024. All rights reserved.