在Python中嵌套相同生成器的实例

时间:2012-05-10 17:09:02

标签: python generator nested-loops

说我有一台发电机:

def mygen():
    for i in range(10):
        yield i

这正如我所料:ij

的所有组合
for i in mygen():
    for j in mygen():
        print i, j

我认为这些是不同的例子。他们为什么不作为不同的实例?

g1 = mygen()
g2 = mygen()

for i in g1:
    for j in g2:
        print i, j

如果我尝试g1.next(),我会收到错误,因为没有数据。

我正在运行Python 2.7.1。

1 个答案:

答案 0 :(得分:9)

第一次迭代g2消耗它,所以当你试图在随后的时间迭代它时,什么也没有留下。

g1 = mygen()
for i in g1:
    g2 = mygen()
    for j in g2:
        print i, j