在 Python 2.x 中,print是语句,而不是函数。如果您在 Python 3.x 中尝试此操作,它将起作用。
在 Python 2.x 中,你可以说它print(x)不是语法错误,但它实际上不是函数调用。正如 ,和Python 2.x中的一样1 + (3)。1 + 3print(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/