同じ処理で時間短縮 - lucen2k/python GitHub Wiki

Sample Source

import time

# 利用するデータ
data = [i for i in range(1, 1000000)]

# 通常のfor文
time1 = time.process_time()
newData = []
for d in data:
    if d % 2 == 0:
        newData.append(d)
time2 = time.process_time()
print(time2 - time1)

# リスト内包表記
time1 = time.process_time()
newData = [d for d in data if d % 2 == 0]
time2 = time.process_time()
print(time2 - time1)

# filterとラムダ式
time1 = time.process_time()
newData = filter(lambda x:x%2==0, data)
time2 = time.process_time()
print(time2 - time1)

結果

0.078125
0.046875
0.015625