【发布时间】:2016-06-15 20:38:42
【问题描述】:
使用 Python 3.4,我在这里得到 SyntaxError: invalid syntax:
>>> xlist = [1,2,3,4,5]
>>> [yield(x) for x in xlist]
SyntaxError: invalid syntax
但这会生成一个生成器对象:
>>> [(yield(x)) for x in xlist]
<generator object <listcomp> at 0x00000076CC8E5DB0>
是否需要在 yield 周围加上圆括号?
【问题讨论】:
-
值得注意的是,您的示例中
x周围的括号没有做任何事情。yield是关键字,而不是函数。 -
不要在理解中使用
yield。它做了一些你不想要的疯狂的事情,而且它确实应该是一个语法错误。 -
尾声:理解中的 yield 在 3.8 中变成了语法错误
标签: python python-3.x