如何为生成器函数创建循环而不是每次调用

how to create a loop for a generator function instead of each next call

我不明白我应该如何使用 loop for 来调用所有操作而不是使用 'print (next(generator))

我有一个生成器函数,我需要打印列表中的所有元素

def gen(a,b)... #there is a generator function

for i in gen(a,b):
    print (next(gen(a,b)))

问题出在哪里?

i 是您的生成器产生的值。使用您当前的代码,您将忽略 i,并在每次迭代中创建一个新的生成器,然后获取该新迭代器的第一个元素。

您只需要:

for i in gen(a,b):
    print(i)