pythonのfor文、rangeとenumerate、早いのはどっち?

今回は、20ループを10回繰り返した時間で対決

準備

import random
A = [[random.random()] * 1000 for i in range(1000)]

range

%%timeit -n 20 -r 10
A_sum = 0
for j in range(len(A)):
    for k in range(len(A[j])):
        A_sum += A[j][k]

enumerate

%%timeit -n 20 -r 10
A_sum = 0
for jin, j in enumerate(A):
    for kin, k in enumerate(j):
        A_sum += k

結果

enumerateの勝利
f:id:harucharuru:20210125120111p:plain