Skip to main content
 首页 » 编程设计

python之在 `for` 中使用 `print()` 会在 Python 3.x 上生成生成器吗

2025年05月04日10zlslch

<分区>

为什么以及如何运作?例如,我正在写一个这样的列表理解:

>>> 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) 会生成一个生成器,但这是不可能的,但是我没有使用两对 ()喜欢:

>>> a = (10, 30, 20) 
>>> print((q for q in a)) # here is two pair of `()` 
<generator object <genexpr> at 0x7fe527d1dca8>