對於一個正常的功能,map
效果很好:爲什麼地圖(打印,a_list)不起作用?
def increment(n):
return n+1
l = [1, 2, 3, 4, 5]
l = map(increment, l)
print l
>>> [2, 3, 4, 5, 6]
但是,如果它是print
陸續投放map
函數內部:
l = [1, 2, 3, 4, 5]
l = map(print, l)
print l
蟒蛇會抱怨:
l = map(print, l)
^
SyntaxError: invalid syntax
是什麼讓print
特別? print(x)
是否也是一個有效的函數調用?上面的代碼是在python 2.7下測試的。
它不會爆炸,但很可能它不會按預期工作。我想clwen想要真正地打印東西,而不是'<地圖對象在0x9a62aec>'。如果你想打印它,你必須迭代地圖對象。 – 2013-11-07 18:44:58
我不確定你的意思是「它不會炸燬」......如果你在Python 2.x中運行'map(print,[])',你會得到'SyntaxError:invalid syntax',因爲'print '是一個聲明。你必須在Python 3.x中試過它,其中'print'是一個函數,將它傳遞給'map()'是完全合法的。在Python 2.x中'map()'返回一個列表,而不是'
我的意思是說,你是對的,'map(print,[])'不會在Python 3中爆炸(拋出一個異常)。但是儘管它沒有拋出異常,但結果可能並不是clwen想要的要得到。 – 2013-11-07 21:57:46