使用を好む理由はありますか?地図()リスト内包表記よりも 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