>>> def f(x):
... return x * x
...>>> map(f, [1, 2, 3, 4, 5, 6, 7, 8, 9])
[1, 4, 9, 16, 25, 36, 49, 64, 81]
map()傳入的第乙個引數是f,即函式物件本身。map()作為高階函式,事實上它把運算規則抽象了,因此,我們不但可以計算簡單的f(x)=x2,還可以計算任意複雜的函式,比如,把這個list所有數字轉為字串:
>>> map(str, [1, 2, 3, 4, 5, 6, 7, 8, 9])
['1', '2', '3', '4', '5', '6', '7', '8', '9']
reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
>>> def fn(x, y):
... return x * 10 + y
...>>> reduce(fn, [1, 3, 5, 7, 9])
13579
#把序列[1, 3, 5, 7, 9]變換成整數13579
>>> def add(x, y):
... return x + y
...>>> reduce(add, [1, 3, 5, 7, 9])
25
filter(function, iterable)
#過濾出列表中的所有奇數
def is_odd(n):
return n % 2 == 1
tmplist = filter(is_odd, [1, 2, 3, 4, 5, 6, 7, 8, 9, 10])
newlist = list(tmplist)
print(newlist)
#輸出結果
[1, 3, 5, 7, 9]
從Map和Reduce說起
從map和reduce說起 最近在看函式式程式設計的一些東西,尤其是sheme和python,有些困惑,遂寫下一些東西。在python中,map reduce filter是函式式程式設計的一組重要的工具.map將過程 函式 應用於資料以產生新的資料,而reduce則是將資料進行歸併.下面的語句分別...
map 函式和reduce 函式
map 函式 也稱對映物件函式,接受兩個引數,第乙個是函式,第二個是序列。map 將傳入的函式依次作用到序列的每個元素並把結果作為list返回。map返回的結果是乙個可迭代的map物件,可以使用 next 獲取值,也可使用for迴圈迭代獲取或者直接轉換為list獲取更加暴力。def demo x r...
map和reduce函式簡介
map函式會根據提供的函式對指定序列做對映。其語法為 map function,iterable 也就是對iterable中的每乙個元素進行function的運算,並返回乙個迭代器。我們想要實現這樣乙個目的 判斷乙個數是奇數還是偶數,並返回乙個列表,列表中包含判斷結果。首先我們定義乙個函式用於判斷並...