環境設定 数値 文字列 正規表現 リスト タプル 集合 辞書 ループ 関数 クラス データクラス 時間 パス ファイル スクレイピング その他

Python の reduce は関数を再帰的に実行してリストを値にする

最終更新日 2023.02.18

Python の functools ライブラリにある reduce はリストを再帰的に処理して値にします。

from functools import reduce


def add(x, y):
    return x + y


numbers = [1, 2, 3, 4, 5]

value = reduce(add, numbers)

print(value)  # 15

reduce は add を再帰的に実行し、リストの要素をどんどん減らし、最後は 15 にします。上の reduce(add, numbers)

from functools import reduce


def add(x, y):
    return x + y


n = add(1, 2)
n = add(n, 3)
n = add(n, 4)
n = add(n, 5)

print(n)  # 15

と同じです。リストがリストでなくなるまで「減らす」から "reduce" という名前なのです。