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

jtg*_*rin 4 python generator nested-loops

说我有一台发电机:

def mygen():
    for i in range(10):
        yield i
Run Code Online (Sandbox Code Playgroud)

这个工程,我所期望的:所有的组合ij

for i in mygen():
    for j in mygen():
        print i, j
Run Code Online (Sandbox Code Playgroud)

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

g1 = mygen()
g2 = mygen()

for i in g1:
    for j in g2:
        print i, j
Run Code Online (Sandbox Code Playgroud)

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

我正在运行Python 2.7.1.

Ign*_*ams 9

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

g1 = mygen()
for i in g1:
    g2 = mygen()
    for j in g2:
        print i, j
Run Code Online (Sandbox Code Playgroud)