Python中的惰性映射函数

Osc*_*ros 13 python iterator map lazy-evaluation

有没有办法做map懒惰?或者是否内置了Python的另一个实现?

我想要这样的东西工作:

from itertools import count

for x in map(lambda x: x**2, count()):
    print x
Run Code Online (Sandbox Code Playgroud)

当然,上面的代码不会结束,但我想在其中输入任何条件(或更复杂的逻辑)for并在某些时候停止.

JBe*_*rdo 40

itertools.imap在Python 2.x上使用或升级到Python 3.x.

您还可以使用更加pythonic的简单生成器表达式:

foo = (x**2 for x in count())
Run Code Online (Sandbox Code Playgroud)

  • +1用于推荐生成器表达式.无论你需要`lambda`,`map()`都不是一个好选择. (6认同)