概述
# No import needed
# No import required...
from functools import reduce # ... but it can be loaded from the functools module
from functools import reduce # mandatory
reduce
通過對 iterable
的下一個元素和累積結果重複應用函式來減少迭代。
def add(s1, s2):
return s1 + s2
asequence = [1, 2, 3]
reduce(add, asequence) # equivalent to: add(add(1,2),3)
# Out: 6
在這個例子中,我們定義了自己的 add
函式。但是,Python 在 operator
模組中提供了標準的等效函式:
import operator
reduce(operator.add, asequence)
# Out: 6
reduce
也可以傳遞一個起始值:
reduce(add, asequence, 10)
# Out: 16