次のテストがあるとします。
>>> import timeit
>>> timeit.timeit("[x + 'abc' for x in ['x', 'y', 'z']]")
>>> timeit.timeit("map(lambda x: x + 'abc', ['x', 'y', 'z'])")
Python 2.7 および 3.4 (Debian 8/testing/jessie) では、次の数値が得られます。
Python27 Python34
1.3s 0.5s map()
0.6s 0.9s list comprehension
Map は Python 3 で大幅に改善されましたが、リストの理解はひどく苦しんでいました。
質問: コードを Python 2 から Python 3 に移植する場合、リスト内包表記を map() に変更することをお勧めしますか?