Python3では、1行lambda
で計算する方法を探しています。のは、私は整数のリストのLCMを計算したいとしましょう、これはone line in Python2で行うことができますPython3で片面を減らす
print reduce(lambda a,b: a * b // gcd(a, b), mylist)
は、1ラインのpython3(functools.reduce
せず、暗黙の)で同じことを行うには、それは可能ですか?
Python3では、私はfilter
、map
およびreduce
がなくなったことを知っています。私は、彼らがより短く、より明確な形でのpython3に書き込むことができますので、私はもうfilter
とmap
を必要と感じることはありませんが、私はいずれかを発見していない以外、私は、同様reduce
のための素晴らしい代替を見つけることができると思いました。私はhaveを見たmanyの記事thatを提案tofunctools.reduce
または "write out the accumulation loop explicitly"を使用していますが、私はfunctoolsをインポートせずに1行でやりたいと思います。
もしそれがもっと簡単になるなら、私はassociativeとcommutativeの両方の機能を使用することを述べるべきです。
f(1,f(2,f(3,4)))
f(f(1,2),f(3,4))
- または任意の他の順序ので
なぜ1行でやりたいのですか?それで、なぜ 'functools.reduce'を使いたいのですか?これらの要件はいずれも実用的ではないと思われます。 –
Chrisのコメントに追加するために、 'reduce'は大域名空間から' functools'に正確に移動されました。 。 – Sneftel
関連:私は結果を使用できるようにhttp://stackoverflow.com/questions/41524133/removing-duplicates-using-only-lambda-functions/41524134#41524134 –