map
andfilter
はしばしばリスト内包表記と交換可能ですが、 andreduce
ほど簡単に交換することはできません(さらに、場合によっては、とにかく関数型構文を好む場合もあります)。ただし、引数自体を操作する必要がある場合は、構文の体操を行い、最終的には読みやすさを維持するために関数全体を作成する必要があります。map
filter
map
図の単体テストを単純にするために使用しますが、実際のユースケースはリスト内包表記として表現するのが難しい場合があることに注意してください。
私はそれを行うための2つの厄介な方法を見つけましたが、実際に使用するものは何もありません.
[afunc(*i) for i in aniter] == map(afunc, *zip(*aniter))
[afunc(*i) for i in aniter] == map(lambda i: apply(afunc, i), aniter)
これらの式の右辺を表現する簡潔でエレガントな方法はありますか?