python - 列表理解返回值加上 [None, None, None],为什么?

标签 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/

相关文章:

python - 如何更快地计算大数的乘法?

Python:如何在行和列的值之间创建对应矩阵?

python - 如何解决退出暂停屏幕后时钟显示不正确的问题?

python - 将 header 值传递给 django 中的 get 请求

python - 具有多个分隔符的拆分列表

python - 获取函数的可变默认参数

python - 如何使用 Python 使用 Github Markdown API

python - 无法让 Pyinstaller 执行 python 文件

python - Keras 中 Dense 和 Activation 层的区别

python - 导入错误 : No module named Qsci while running ninja-ide