総乗の計算が1行でできる
Pythonに総和を計算する関数はあるが、総乗を計算する関数はないので自作する。
# Python 3.1 import functools import operator Π = functools.partial(functools.reduce, operator.mul) print(Π([3, 5, 7, 11])) # 1155 print(Π([3, 5, 7, 11, 13])) # 15015
Python2ではビルトイン関数だったreduce()がモジュール関数に降格してて吹いた。いまいち使いにくい関数だったのでしょうがないか。
operator.mulをoperator.addに置き換えると総和になる。つまりsum()ね。こんな感じで、Pythonがグルー言語であることを最近実感している。