当前位置: 首页>>代码示例 >>用法及示例精选 >>正文


Python functools.reduce用法及代码示例


用法:

functools.reduce(function, iterable[, initializer])

将两个参数的 function 从左到右累积应用到 iterable 的项目,以将可迭代减少为单个值。例如,reduce(lambda x, y: x+y, [1, 2, 3, 4, 5]) 计算 ((((1+2)+3)+4)+5) 。左侧参数 x 是累积值,右侧参数 y 是来自 iterable 的更新值。如果存在可选的initializer,则在计算中将其放置在可迭代项之前,并在可迭代项为空时用作默认值。如果没有给出initializer 并且iterable 只包含一个项目,则返回第一个项目。

大致相当于:

def reduce(function, iterable, initializer=None):
    it = iter(iterable)
    if initializer is None:
        value = next(it)
    else:
        value = initializer
    for element in it:
        value = function(value, element)
    return value

有关产生所有中间值的迭代器,请参见itertools.accumulate()

相关用法


注:本文由纯净天空筛选整理自python.org大神的英文原创作品 functools.reduce。非经特殊声明,原始代码版权归原作者所有,本译文未经允许或授权,请勿转载或复制。