概述

# 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