概述
# 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