python3的一個奇怪設計--map函數

在升級到python3的時候,發現了一個map函數的變化,害得我找了半天問題。python

在python2中,map會直接返回結果,好比說:ruby

map(lambda x: x, [1,2,3])

能夠直接返回函數

[1,2,3]

可是到了python3, 返回的就是一個map對象:code

<map object at 0x7f381112ad50>

若是要獲得結果,必須用list做用於這個map對象。對象

若是說計算結果已經出來了,只是要用list來打印結果,那就算了。class

接下來就是我發現的python3下map坑爹貨了:lambda

若是不在map前加上list,lambda函數根本就不會執行

這個改動真是太不正常了,ruby、js和lisp都沒這麼幹的。我也沒搞懂這樣作有什麼好處?object

相關文章
相關標籤/搜索