1. 程式人生 > >python list 和dict的查詢效率比較

python list 和dict的查詢效率比較

首先給一個簡單的例子,測測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)。