python list 和dict的查詢效率比較
阿新 • • 發佈:2019-01-06
首先給一個簡單的例子,測測list和dict查詢的時間:
import time query_lst = [-60000,-6000,-600,-60,-6,0,6,60,600,6000,60000] lst = [] dic = {} for i in range(100000000): lst.append(i) dic[i] = 1 start = time.time() for v in query_lst: if v in lst: continue end1 = time.time() for v in query_lst: if v in dic: continue end2 = time.time() print "list search time : %f"%(end1-start) print "dict search time : %f"%(end2-end1)
執行結果:
list search time : 11.836798
dict search time : 0.000007
通過上例我們可以看到list的查詢效率遠遠低於dict的效率,原因如下:
python中list物件的儲存結構採用的是線性表,因此其查詢複雜度為O(n),而dict物件的儲存結構採用的是散列表(hash表),其在最優情況下查詢複雜度為O(1)。