函數(shù)式編程
- 函數(shù)式編程的特點:允許把函數(shù)本身作為參數(shù)傳入另一個函數(shù)倚评,還允許返回一個函數(shù)
- 把函數(shù)作為參數(shù)傳入恍箭,這樣的函數(shù)成為高階函數(shù)趣避,函數(shù)式編程就是指這種高度抽象的編程范式。
map/reduce
map()
函數(shù)接收兩個參數(shù)家凯,一個是函數(shù),一個是可迭代對象如失,map
將傳入的函數(shù)一次作用到序列的每個元素绊诲,并把結(jié)果作為新的迭代對象返回。-
reduce
把一個函數(shù)作用在一個序列[x1, x2, x3, ...]
上岖常,這個函數(shù)必須接收兩個參數(shù)驯镊,redece
把結(jié)果繼續(xù)和序列的下一個元素做累計計算reduce(f, [x1, x2, x3, x4]) = f(f(f(x1, x2), x3), x4)
filter
-
filter()
用于過濾序列, 和map()
類似,filter()
也接收一個函數(shù)和一個序列板惑。和map()
不同的是橄镜,filter()
把傳入的函數(shù)依次作用于每個元素,然后根據(jù)返回值是True
還是False
決定保留還是丟棄該元素
sorted
-
sorted()
函數(shù)是一個高階函數(shù)冯乘,它還可以接收一個key
函數(shù)來實現(xiàn)自定義的排序sorted([36, 5, -12, 9, -21], key = abs)
若要進(jìn)行反向排序洽胶,不必改動key函數(shù),可以傳入第三個參數(shù)
reverse=True