小编pha*_*ile的帖子

使用生成器的Python嵌套循环不起作用(在某些情况下)?

请问有人请使用生成器解释嵌套循环的行为吗?这是一个例子.

a = (x for x in range(3))
b = (x for x in range(2))
for i in a:
    for j in b:
        print (i,j)
Run Code Online (Sandbox Code Playgroud)

由于某种原因,在第一次迭代后不评估外部循环.结果是,

(0, 0)
(0, 1)
Run Code Online (Sandbox Code Playgroud)

另一方面,如果将生成器直接插入到循环中,它就能达到我的预期.

for i in (x for x in range(3)):
    for j in (x for x in range(2)):
        print (i,j)
Run Code Online (Sandbox Code Playgroud)

给所有3x2对.

(0, 0)
(0, 1)
(1, 0)
(1, 1)
(2, 0)
(2, 1)
Run Code Online (Sandbox Code Playgroud)

python generator nested-loops

9
推荐指数
2
解决办法
2668
查看次数

标签 统计

generator ×1

nested-loops ×1

python ×1