看起来Python中的这个构造并不是懒惰的:
g1 = ["'"+x+"'" for x in f2]
这个是:
g2 = ("'"+x+"'" for x in f2)
因为g2有next()
方法而g1没有。
这在哪里记录?我似乎无法在python文档中找到相关页面,不知道要查找什么。
答案 0 :(得分:6)
您正在寻找list displays和generator expressions。第一种形式称为“列表理解”,是一种定义列表的专用形式。
至于第二种形式,即生成器表达式,这就是文档所说的内容:
生成器表达式生成一个新的生成器对象。它的语法与理解相同,只是它括在括号中而不是括号或花括号中。
答案 1 :(得分:2)
您可能需要查看此处:http://www.python.org/dev/peps/pep-0289/
这是描述生成器表达式及其背后的基本原理的PEP。