reduce()函式在python3.0中已經不是bif函式了,使用前需要通過匯入:
from functools import reduce
reduce(func,seq)函式是一種自動迭代吧,把序列中的前兩個元素匯入到函式中,得到乙個新的引數,並同序列中的下乙個元素一起作為函式的新的兩個引數,依次進行,最後返回乙個函式值。
以最簡單的陣列元素想加為例。
使用迴圈語句,(c語言的風格吧):
sumnum = 0
for i in range(5):
sumnum += i
print(sunnum)
得到結果:
10
採用reduce()函式的方法,如下:
from functools import reduce
sumnum = redece(lambda x,y:x+y,range(5))
print(sumnum)
得到:
10
tips:這裡使用了lambda()函式,顯得很pythonic……
——————————————————————————————
11/26 補充:
reduce(lambda a, b : a & b, list(map(dict.keys, [dict1, dict2, dict3])))
一行**搞定,同時運用了reduce, lambda, map函式,更加pythonic了… python 的map和reduce(高階函式)
map 函式接受兩個引數,乙個是函式 f 乙個是可迭代物件iterable map將傳入的函式依次作用到序列的每個元素,並把結果作為新的迭代器iterator 返回 例如 def f x return x x r map f,1,2,3,4,5 r 是乙個迭代器 list r 將r變成list 注意...
map函式 filter函式 reduce函式
map函式 map函式的結構為 map 處理方法,可迭代物件 相當於for迴圈遍歷可迭代物件中的每乙個元素,對每乙個元素做指定操作,得到乙個和原始資料順序相同的迭代器。在python3中最終得到的結果是乙個迭代器,可以用list 函式轉化為列表,在python2中map函式的結果就是乙個列表。map...
Python學習 reduce的使用
from functools import reduce 意思就是對sequence連續使用function,如果不給出initial,則第一次呼叫傳遞sequence的兩個元素,以後把前一次呼叫的結果和sequence的下乙個元素傳遞給function.如果給出initial,則第一次傳遞init...