Python for文の処理を速くする

Pythonでfor文のネスト(forの中にfor)を使うより、速くコードを書く方法があります。
例えばこのようなfor文のネストがあったとしたら

list = []  #空のリストを宣言
for i in range(10000):
    for j in range(1000):
        list.append([i,j])

このように書くことで、実行速度も速くなりコードの可読性が上がります。

list = [[j,i] for j in range(1000) for i in range(10000)]

このような書き方を内包表記といいます。

速度を測ります!

import time

t1 = time.time()  #開始の時間

list1 = []  #空のリストを宣言
for i in range(10000):
    for j in range(1000):
        list1.append([i,j])

t2 = time.time()  #終了の時間

elapsed_time1 = t2-t1
print(f"経過時間1:{elapsed_time1}")


t3 = time.time()  #開始の時間

list2 = []

list2 = [[j,i] for j in range(1000) for i in range(10000)]

t4 = time.time()  #終了の時間

elapsed_time2 = t4-t3
print(f"経過時間2:{elapsed_time2}")
$ 経過時間1:5.356825113296509
$ 経過時間2:4.4661760330200195

約1秒違いますね。この差は大きい…