1. 程式人生 > >python 判斷一個元素在不在list的時間複雜度

python 判斷一個元素在不在list的時間複雜度

先上程式碼

import time
a = list(range(10**6))
b = 10**6-1
start = time.time()
if b in a:
	print('ok')
end = time.time()

print('list:%f'%(end-start))


dicts = dict(zip(a,a))
start = time.time()
if b in dicts:
	print('ok')
end = time.time()

print('dicts:%f'%(end-start))

結果:

上面的是list的結果  下面的是雜湊的結果.  可見python預設的尋找方式居然是遍歷  太蠢了. 時間複雜度o(n)

所以當需要重複查詢多個數據是不是在一個list裡面的時候 最好的辦法是先把list變成雜湊表.