大佬教程收集整理的这篇文章主要介绍了为什么map(print,a_list)不起作用?,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
在Python 2.x中,print
它是语句,而不是函数。如果您在Python 3.x中尝试此操作,它将起作用。
在Python 2.x中,您可以说print(x)
这不是语法错误,但实际上不是函数调用。就像1 + (3)
是一样的1 +
3
,print(x)
是同print x
在Python 2.x版本
在Python 2.x中,您可以执行以下操作:
def prn(x):
print x
然后,您可以执行以下操作:
map(prn, lst)
它会工作。请注意,您可能不想这样做,lst = map(prn, lst)
因为prn()
returnNone
,因此您将用相同长度的value列表替换值列表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/
对于正常功能,map
效果很好:
def increment(n):
return n+1
l = [1,2,3,4,5]
l = map(increment,l)
print l
>>> [2,5,6]
但是,如果将print
其放入map
函数中:
l = [1,5]
l = map(print,l)
print l
python会抱怨:
l = map(print,l)
^
SyntaxError: invalid syntax
有什么print
特别之处?也不print(x)
是有效的函数调用吗?上面的代码在python 2.7下进行了测试。
以上是大佬教程为你收集整理的为什么map(print,a_list)不起作用?全部内容,希望文章能够帮你解决为什么map(print,a_list)不起作用?所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。