【发布时间】:2020-03-12 03:12:07
【问题描述】:
我正在尝试制作一个生成器,它可以为我提供 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)。为什么?
【问题讨论】:
-
标准库中有一个函数可以帮你搞定,顺便
list(itertools.product(range(3), range(3), range(3))) -
您收到此错误是因为
generator()创建了生成器。所以你正在创建生成器并获得它的第一个项目 27 次。正确的方法是创建一次my_gen = generator()然后你可以调用 nextfor _ in range(27): print(next(my_gen))
标签: python-3.x generator yield next