有没有一个表示无限迭代器的表达式?

6 浏览
0 Comments

有没有一个表示无限迭代器的表达式?

是否有一种简单直接的表达式可以产生一个无限迭代器?

这只是一个纯理论的问题,这里不需要一个“实际”的答案 🙂


例如,使用一个生成器表达式很容易制作一个有限迭代器:

my_gen = (0 for i in range(42))

然而,要制作一个无限迭代器,我需要在命名空间中“污染”一个虚假的函数:

def _my_gen():
    while True:
        yield 0
my_gen = _my_gen()

在单独的文件中操作并在以后进行import不算。


我也知道itertools.repeat正是做这个的。我想知道是否有一个一行的解决方案,而不使用它。

0