Pythonにはリスト内包表記という可読性を著しく損なう記法がある。でも、リスト内包表記は何故か速くて、for文を書く前にそれがリスト内包表記で書けないか考えることになっている。 どれくらい速いのか。普通のforループと比較してみる。 #普通のループ def loop(i): result = [] for x in range(i): result.append(x) return result #リスト内包表記 def compre(i): return [x for x in range(i)] 以下は100ループを100万回行った時の実行時間 >>import timeit >>timeit.__dict__.update(loop=loop, compre=compre) >>timeit.Timer('loop(100)').timeit() 16.42305278778076