python的for循環耗時太長引發思考

big_list = list('big data')
for one in all_data:
    time_a = time.time()
    if one not in set(big_list) :
    	print('the time is', time.time()-time_a)

結果發現每個if判斷的時間爲0.03s, 如果for循環數據很大的話,將很浪費時間,1000次,30s。

開始思考,python的查找邏輯,在一個集合中查找一個數,應該是一條一條的匹配驗證。
如果想要快速查找,應該將集合轉化爲列表,並進行排序,才能快速查找。

然後便開始研究pythonin的查找邏輯是怎樣的。

然後發現setdict是哈希查找,速度很快的。
哈希查找

自己之前開發沒有深入理解呢。知其然不知其所以然。

那爲什麼慢呢?
突然想到,將列表變爲集合是耗時間的吧,因此單獨測試了將列表轉爲集合的時間,發現爲0.03s,然後發現問題,不能在iffor循環)判斷中進行set操作,太重複了,浪費時間。

以上。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章