Python函式式程式設計之reduce函式

2021-09-11 10:41:17 字數 803 閱讀 2603

reduce(f, itr)`  reducer 先將itr(迭代器)裡面的前兩個值傳遞給函式`f`,計算出結果,然後再同第三個值通過`f`計算出結果。一直迭代,直到沒有其他值為止。

譬如:`reducer(f, [v1, v2, v3, v4])``,轉化後的方程是`f(f(f(v1, v2), v3), v4)`

#高階函式 - reducer

#reduce(f, itr)` reducer 先將itr(迭代器)裡面的前兩個值傳遞給函式`f`,

#計算出結果,然後再同第三個值通過`f`計算出結果。一直迭代,直到沒有其他值為止。

#譬如:`reducer(f, [v1, v2, v3, v4])``,轉化後的方程是`f(f(f(v1, v2), v3), v4)`

from functools import reduce

print(reduce(lambda x,y:x+y,[1,2,3,4,5]))

#定義乙個比大小的函式

def max(x,y):

if x>y:

return x

else:

return y

#reduce返回其中的最大值

print(reduce(max,[1,3,5,3,1]))

#利用reduce函式對1-10的奇數求和

print(reduce(lambda x,y:x+y,filter(lambda x:x%2==1,range(1,11))))

執行結果:

15

525

Python函式式程式設計之lambda

python可以使用lambda來建立匿名函式。lambda只是乙個表示式,函式題比def簡單的多。lambda主體是乙個表示式,而不是乙個 塊。僅僅能在lambda表示式中封裝有限的邏輯進去。lambda擁有自己的命名空間,且不能訪問自有引數列表之外或全域性命名空間裡的引數。lambda雖然看起來...

Python函式式程式設計之filter

filter 函式可以對序列做過濾處理,就是說可以使用乙個自定的函式過濾乙個序列,把序列的每一項傳到自定義的過濾函式裡面進行處理,並返回結果做過濾。最終一次性返回過濾結果。filter 和map不同的是把傳入的函式以此作用於每個元素,然後根據返回值是true還是false決定保留還是丟棄該元素。fi...

python函式式程式設計之偏函式

偏函式 partial function。在python中偏函式的作用是把函式的某些引數給固定住了 設定默值 返回乙個新的函式,呼叫這個新的函式會更簡單。int 函式可以把字串轉換為整數,當僅傳入字串時,int 函式預設按十進位制進行轉換 int 12345 12345但是int 函式還提供額外的b...