リストの理解とマップ 質問する

リストの理解とマップ 質問する

使用を好む理由はありますか?地図()リスト内包表記よりも Python の方が優れているのでしょうか、それともその逆でしょうか? どちらかが一般的により効率的であるか、またはより Python 的であると考えられているのでしょうか?

ベストアンサー1

mapは、場合によっては微視的に高速になることがあります(目的のためにラムダを作成せ、mapで同じ関数を使用し、リストの理解リスト内包表記は他の場合にはより高速になる可能性があり、ほとんどの (すべてではない) Python ユーザーはリスト内包表記の方がより直接的で明確であると考えています。

まったく同じ関数を使用した場合のmapのわずかな速度上の利点の例:

$ python -m timeit -s'xs=range(10)' 'map(hex, xs)'
100000 loops, best of 3: 4.86 usec per loop

$ python -m timeit -s'xs=range(10)' '[hex(x) for x in xs]'
100000 loops, best of 3: 5.58 usec per loop

map にラムダが必要な場合、パフォーマンスの比較が完全に逆転する例:

$ python -m timeit -s'xs=range(10)' 'map(lambda x: x+2, xs)'
100000 loops, best of 3: 4.24 usec per loop

$ python -m timeit -s'xs=range(10)' '[x+2 for x in xs]'
100000 loops, best of 3: 2.32 usec per loop

おすすめ記事