为什么列表(print(x.upper(),end ='')为'垃圾'中的x)得到[无,无,无,无]列表?

时间:2016-07-28 02:13:35

标签: python python-3.x

在“学习Python第5版”的第608页上,有一个示例代码:

>>> list(print(x.upper(), end=' ') for x in 'spam')
S P A M [None, None, None, None]

那么,为什么[无,无,无,无]弹出最后一个?

1 个答案:

答案 0 :(得分:4)

print函数返回None ...因此,您的表达式构造了一个列表[None, None, None, None]。由于您在python Read Evaluate Print Loop(REPL)中,表达式的结果在评估后会被打印出来......

因此,表达式的评估具有打印S P A M的副作用,然后在评估表达式之后,它的值被打印([None, None, None, None])。