python 迴圈與列表生成式
阿新 • • 發佈:2019-01-31
一般而言,在迴圈與列表生成式都可選的時候,列表生成式感覺速度會更快一點,做一個對比試驗:
# python3
import time
def compare_time(N):
start1 = time.time()
r1 = []
for i in range(N):
for j in range(N):
r1.append(i*j)
end1 = time.time()
start2 = time.time()
r2 = [i*j for i in range(N) for j in range(N)]
end2 = time.time()
print('for N=' + str(N),end='\t')
print(end1-start1,end='\t')
print(end2-start2)
for N in [1,10,100,1000,10000]:
compare_time(N)
輸出結果為:
for N=1 2.002716064453125e-05 1.0013580322265625e-05
for N=10 4.6253204345703125e-05 2.2649765014648438e-05
for N=100 0.002928018569946289 0.0009961128234863281
for N=1000 0.2267467975616455 0.1569828987121582
for N=10000 17.209186792373657 12.588067054748535
由此可見,還是列表生成式速度會更快一點。