當前位置: 首頁>>代碼示例 >>用法及示例精選 >>正文


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。非經特殊聲明,原始代碼版權歸原作者所有,本譯文未經允許或授權,請勿轉載或複製。