我正在研究理解.我得到了print(x)部分(我认为.它打印了传递'in'测试的x的值)但是为什么它之后也会返回None列表呢?
>>> g
['a', 'x', 'p']
>>> [print(x) for x in g]
a
x
p
[None, None, None] #whats this?
Run Code Online (Sandbox Code Playgroud)
unu*_*tbu 18
print是一个函数(在Python3中).它会在屏幕上打印一些内容,但会返回 None.
在Python2中,print是一个声明.[print(x) for x in g]会引发一个SyntaxError,因为在列表推导中只能使用表达式而不是语句.函数调用是一个表达式,这就是Python3中允许它的原因.但正如您所看到的print,即使允许使用列表解析也不是很有用.
您使用列表推导来打印列表中的项目,然后打印列表本身.尝试将列表分配给变量.
>>> g
['a', 'x', 'p']
>>> x = [print(x) for x in g]
a
x
p
#
Run Code Online (Sandbox Code Playgroud)
现在列表是x并且没有打印.清单还在那里......
>>> print(x)
[None, None, None]
>>> x
[None, None, None]
Run Code Online (Sandbox Code Playgroud)