隅歩つ

書いて理解を深める

reduce関数

プログラマーなら知っておきたい40のアルゴリズム 定番・最新系をPythonで実践!』を読んでいたら「reduce関数」が出てきました。

reduce関数はまだよくわかっていないのですが、すごく便利そうです。

reduce関数

reduce関数を使えば、リストの中の数値を全部足したり引いたりできます。

forを使って自分でもすぐに足し算はできると思ってしまいますが、もっと大量のデータを扱ったりするときに便利なのようです。

reduce関数を使うときには、リストと関数が必要です。

from functools import reduce

def doSum(x1,x2):
    return x1+x2

x=reduce(doSum,[100,122,33,4,5,6])
print(x)
# 270

この場合、関数が[doSum]です。

リストを[doSum]を使って足し算をしてくれています。

reduce関数を使う際はインポートが必要です。

from functools import reduce

functoolsは便利そうですね。

operator

あと、operatorというものを使うと、さらに便利になるようです。

先に[add, mul, sub]をインポートしておきます。

a = reduce(add, [100, 122, 33, 4, 5, 6])
m = reduce(mul, [100, 122, 33, 4, 5, 6])
s = reduce(sub, [100, 122, 33, 4, 5, 6])

print(a) # 270
print(m) # 48312000
print(s) # -70

operatorを使えば、自分で関数を作らなくてもよいようです。

operatorもよくわかっていないので今後わかったら追記します。