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秒違いますね。この差は大きい…