Re: [問題] List擴編的處理速度...

看板Python作者 (狗狗)時間16年前 (2009/04/25 02:02), 編輯推噓0(001)
留言1則, 1人參與, 最新討論串2/9 (看更多)
比較兩個將原list copy出來後 再擴編時的速度 也就是純粹比較 y = x[:] y.append(i) 和 y = x + [i] 這兩個速度的不同... code如下 ======== from time import time a = 30000 b = 30000 x = range(a) y=[] c=0 A=time() for i in xrange(b): y = x[:] #測試方法一 先複製 (不能用y = x) y.append(i) #測試方法一 再append c+=1 print time()-A, c, len(y) #呈現"運作時間",操作次數,是否有成功擴建list if y is x: #測試y和x是不是同一物件 print "True" else: print "False" x=range(a) y=[] c=0 A=time() for i in xrange(b): y = x + [i] #測試方法二 c+=1 print time()-A, c, len(y) if y is x: print "True" else: print "False" ========== 結果: 7.98008298874 30000 30001 False 8.92190909386 30000 30001 False 先複製list之後再append 比直接+=快... -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.129.59.68

04/25 02:07, , 1F
另把ab參數改成一大一小戶比 a越大(list越大)慢得較明顯
04/25 02:07, 1F
※ 編輯: leondemon 來自: 140.129.59.68 (04/25 04:01)
文章代碼(AID): #19yVx8wm (Python)
討論串 (同標題文章)
文章代碼(AID): #19yVx8wm (Python)