Python函數語言程式設計-map/reduce

yaohong發表於2017-09-06

 

 

1.map

map()傳入的第一個引數是f,即函式物件本身。

map()函式接收兩個引數,一個是函式,一個是Interable,map將傳入的函式依次作用到序列的每個元素,並把結果作為新的Iterator返回。

>>> def f(x):
...     return x*x
... 
>>> r=map(f,[1,2,3,4,5])
>>> list (r)
[1, 4, 9, 16, 25]

2.reduce 

reduce把一個函式作用在一個序列[x1, x2, x3, ...]上,這個函式必須接收兩個引數,reduce把結果繼續和序列的下一個元素做累積計算。

例一:

>>> from functools import reduce
>>> def add(x,y):
...     return x+y
... 
>>> reduce(add,[1,3,5,7,9])
25
>>> 

例二:

>>> from functools import reduce
>>> def fn(x,y):
...     return  x*10 +y
... 
>>> reduce (fn,[1,3,5,7,9])
13579

 


相關文章