在 Python 2.x 中,print
是语句,而不是函数。如果您在 Python 3.x 中尝试此操作,它将起作用。
在 Python 2.x 中,你可以说它print(x)
不是语法错误,但它实际上不是函数调用。正如 ,和Python 2.x中的一样1 + (3)
。1 + 3
print(x)
print x
在 Python 2.x 中,您可以这样做:
def prn(x):
print x
然后你可以这样做:
map(prn, lst)
它会起作用。请注意,您可能不想这样做,lst = map(prn, lst)
因为prn()
返回None
,因此您将使用仅包含相同长度的值列表替换值列表None
。
编辑:Python 2.x 的另外两个解决方案。
如果你想完全改变 的行为print
,你可以这样做:
from __future__ import print_function
map(print, lst)
这print
就像在 Python 3.x 中一样成为一个函数,因此它可以与map()
.
或者,您可以这样做:
from pprint import pprint
map(pprint, lst)
pprint()
是一个打印东西的功能,它可以作为内置的。我不确定它与默认值有何不同print
(它说它是一个“漂亮的打印”功能,但我不确定它到底有什么不同)。
此外,根据 PEP 8 标准,不建议将其l
用作变量名,因此我lst
在示例中使用。
http://www.python.org/dev/peps/pep-0008/