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" という名前なのです。