旅好きエンジニアのメモ

旅のこと映画、統計、会計、プログラミングなど、気の向くままに語ります

pythonのリスト内包表記と普通のfor文どちらが早いか

リスト内包表記と普通のfor文どちらが早いかを確かめてみました。

普通のfor文
import time
def process():
    start_time = time.time()
    result = []
    for i in range(30000000):
        result += [i]

    processing_time = time.time() - start_time
    return processing_time
In [97]:  process()
Out[97]: 4.502268075942993
リスト内包表記
import time
def process():
    start_time = time.time()
    result = [i for i in range(3000000)]
    processing_time = time.time() - start_time
    return processing_time
In [91]: process()
Out[91]: 1.3883929252624512

結果的にリスト内包表記のほうが3倍早かったです。