1. 程式人生 > >python2和python3 map函式的區別

python2和python3 map函式的區別

map()是 Python內建的高階函式,它接收一個函式 f 和一個 list,並通過把函式 f 依次作用在 list 的每個元素上,得到一個新的 list 並返回。

def f(x):
    return x*x
print map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])

執行結果:[1, 4, 9, 10, 25, 36, 49, 64, 81]
但是在python3返回的是
這裡寫圖片描述

現在我們只需要將print(map(f,[1,2,3,4]))寫成print(list(map(f,[1,2,3,4])))就好了。

因為在python3接收一個函式 f 和一個 list

,並通過把函式 f 依次作用在 list 的每個元素上,得到一個新的 tuple 並返回。
所以我們直接強制轉化就ok了
這裡寫圖片描述