<分区>
我正在学习理解。我得到了 print(x) 部分(我想。它打印了通过“in”测试的 x 的值)但为什么它之后还返回一个 None 列表?
>>> g
['a', 'x', 'p']
>>> [print(x) for x in g]
a
x
p
[None, None, None] #whats this?
标签 python python-3.x
<分区>
我正在学习理解。我得到了 print(x) 部分(我想。它打印了通过“in”测试的 x 的值)但为什么它之后还返回一个 None 列表?
>>> g
['a', 'x', 'p']
>>> [print(x) for x in g]
a
x
p
[None, None, None] #whats this?
最佳答案
print
是一个函数(在 Python3 中)。它会在屏幕上打印一些内容,但返回 None。
在Python2中,print
是一个语句。 [print(x) for x in g]
会引发 SyntaxError,因为在列表推导中只能使用表达式,不能使用语句。函数调用是一个表达式,这就是为什么它在 Python3 中被允许的原因。但是如您所见,即使允许,在列表理解中使用 print
也不是很有用。
关于python - 列表理解返回值加上 [None, None, None],为什么?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18193205/