Python中lazy for-comprehensions的文档

时间:2012-11-29 17:37:43

标签: python generator list-comprehension

看起来Python中的这个构造并不是懒惰的:

g1 = ["'"+x+"'" for x in f2]

这个是:

g2 = ("'"+x+"'" for x in f2)

因为g2有next()方法而g1没有。

这在哪里记录?我似乎无法在python文档中找到相关页面,不知道要查找什么。

2 个答案:

答案 0 :(得分:6)

您正在寻找list displaysgenerator expressions。第一种形式称为“列表理解”,是一种定义列表的专用形式。

至于第二种形式,即生成器表达式,这就是文档所说的内容:

  

生成器表达式生成一个新的生成器对象。它的语法与理解相同,只是它括在括号中而不是括号或花括号中。

答案 1 :(得分:2)

您可能需要查看此处:http://www.python.org/dev/peps/pep-0289/

这是描述生成器表达式及其背后的基本原理的PEP。