2

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

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

这个是:

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

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

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

4

2 回答 2

6

您正在寻找列表显示生成器表达式。第一种形式称为“列表推导”,是定义​​列表的一种特殊形式。

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

生成器表达式产生一个新的生成器对象。它的语法与推导式相同,只是用括号而不是括号或花括号括起来。

于 2012-11-29T17:39:46.027 回答
2

你可能想看看这里: http: //www.python.org/dev/peps/pep-0289/

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

于 2012-11-29T17:41:44.160 回答