1. 程式人生 > >python 迴圈與列表生成式

python 迴圈與列表生成式

一般而言,在迴圈與列表生成式都可選的時候,列表生成式感覺速度會更快一點,做一個對比試驗:

# 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

由此可見,還是列表生成式速度會更快一點。