我试图使一个发电机,给我的排列3个数字
def generador():
for i in range(3):
for j in range(3):
for k in range(3):
yield i,j,k
使用for循环for a,b,c in generador():
,它工作得很好,但是:
for _ in range(27):
print(next(generador()))
只是一遍又一遍地打印(0,0,0)
。为什么?
2条答案
按热度按时间kmbjn2e31#
就像已经说过的,你在每次迭代中创建生成器。你需要在每次迭代中遍历它:
虽然
itertools.product
会为您做这件事:li9yvcax2#
您需要将生成器锁存到一个变量并通过
next
,这样您就可以遍历同一个示例,否则每次循环都要遍历一个新示例,因此您将得到0,0,0