基礎知識詳解:python( list,set,dict)大規模查找效率對比

前言:

這篇文章主要介紹了基礎知識詳解:python( list, set,dict)大規模查找效率對比,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友可以參考下。

很多時候我們可能要頻繁的進行元素的find 或in操作,本人一直天真的以爲python的list做了hash,通過紅黑樹來高效查找···直到今天我真正來測試它和set,dict的查找效率時,才發現自己想太多了!!!!

先看代碼:

12192974-fbdc0aba1d08b379
基礎知識詳解:python( list,set,dict)大規模查找效率對比

結果:

          set: 0.01762632617301519

         dict: 0.021149536796960248

         ······

          ···

          ··

···list等了20分鐘都沒出結果。

所以···結果一覽無餘啊。

查找效率:set>dict>list

單次查詢中:看來list 就是O(n)的;而set做了去重,本質應該一顆紅黑樹(猜測,STL就是紅黑樹),複雜度O(logn);dict類似對key進行了hash,然後再對hash生成一個紅黑樹進行查找,其查找複雜其實是O(logn),並不是所謂的O(1)。

O(1)只是理想的實現,實際上很多hash的實現是進行了離散化的。dict比set多了一步hash的過程,so 它比set慢,不過差別不大。

so,如果是要頻繁的查找,請使用set吧!

以上就是本文的全部內容,希望對大家的學習有所幫助。

python程序員交流羣:877562786(羣裏含大量學習資料,面試寶典等)

發佈了210 篇原創文章 · 獲贊 38 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章