为什么以及如何运作?例如,我正在编写这样的列表理解:
>>> a = (10, 30, 20)
>>> print([q for q in a])
[10, 30, 20]
现在,如果我删除[]
,这也可以工作,但是:
>>> a = (10, 30, 20)
>>> print(q for q in a)
<generator object <genexpr> at 0x7fe527d1dca8>
Python在这里做了一个生成器吗?如果我这样做没有print()
:
>>> a = (10, 30, 20)
>>> b = q for q in a
File "<input>", line 1
b = q for q in a
^
SyntaxError: invalid syntax
我在想因为(q for q in a)
将制作一个发电机,但这是不可能的,但是我没有使用两对()
like:
>>> a = (10, 30, 20)
>>> print((q for q in a)) # here is two pair of `()`
<generator object <genexpr> at 0x7fe527d1dca8>