『プログラマーなら知っておきたい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もよくわかっていないので今後わかったら追記します。