数値がゼロでない限り、対応する数値に累乗された数値のリストを乗算するためのpythonicでわかりやすい方法を見つけようとしています。これは私がやっていることの簡単なバージョンです。ここでは、要因のリストを [2, 3, 5] としてハードコードしました。
>>> import operator
>>> ## numbers could be written as lambda factor_list, power_list: [[factor_list[i]...
>>> numbers = lambda x, y, z: [[2, 3, 5][i] ** [x, y, z][i] for i in xrange(3)
if [x, y, z][i] != 0]
>>> product = lambda numbers: reduce(operator.mul, numbers, 1)
>>> numbers(1, 0, 0)
[2]
>>> product(numbers(1, 0, 0))
2
>>> numbers(1, 2, 3)
[2, 9, 125]
>>> product(numbers(1, 2, 3))
2250
これは、累乗値が 0 の場合に追加の乗算を単純に回避する for ループを持つ関数として記述できます。たとえばif n !=0: product *= f ** n
、必要に応じてループします。リスト内包表記とラムダは、より良い代替手段になる可能性があると思います。