如何无限使用yield列表元素

Yeo*_*Jin 5 python python-3.x

我有目录列表,该元素应该一次返回一个

所以我编码如下:

def gen():
    list = ["dir_1", "dir_2", ..., "dir_n"]
    for i in list:
        yield i
Run Code Online (Sandbox Code Playgroud)

但是,我想一遍又一遍地获取目录,例如dir_1,,,dir_2... dir_n,,,...这样。dir_1dir_2

我应该怎么做?

gec*_*kos 6

您可以使用循环,不需要另一个生成器,只需在迭代器上调用循环,它将永远循环

from itertools import cycle

for dir in cycle(["dir_1", "dir_2", "dir_n"]):
   do stuff ...
   if some_reason:
     break
Run Code Online (Sandbox Code Playgroud)