python中in在list和dict中查找效率的對(duì)比分析
首先給一個(gè)簡(jiǎn)單的例子,測(cè)測(cè)list和dict查找的時(shí)間:
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)
運(yùn)行結(jié)果:
list search time : 11.836798 dict search time : 0.000007
通過(guò)上例我們可以看到list的查找效率遠(yuǎn)遠(yuǎn)低于dict的效率,原因如下:
python中l(wèi)ist對(duì)象的存儲(chǔ)結(jié)構(gòu)采用的是線性表,因此其查詢復(fù)雜度為O(n),而dict對(duì)象的存儲(chǔ)結(jié)構(gòu)采用的是散列表(hash表),其在最優(yōu)情況下查詢復(fù)雜度為O(1)。
以上這篇python中in在list和dict中查找效率的對(duì)比分析就是小編分享給大家的全部?jī)?nèi)容了,希望能給大家一個(gè)參考,也希望大家多多支持腳本之家。
- Python 中l(wèi)ist ,set,dict的大規(guī)模查找效率對(duì)比詳解
- python里dict變成list實(shí)例方法
- Python 按字典dict的鍵排序,并取出相應(yīng)的鍵值放于list中的實(shí)例
- 對(duì)Python3中dict.keys()轉(zhuǎn)換成list類型的方法詳解
- python去重,一個(gè)由dict組成的list的去重示例
- python: 判斷tuple、list、dict是否為空的方法
- python 實(shí)現(xiàn)將字典dict、列表list中的中文正常顯示方法
- Python按照l(shuí)ist dict key進(jìn)行排序過(guò)程解析
相關(guān)文章
Python聊天室?guī)Ы缑鎸?shí)現(xiàn)的示例代碼(tkinter,Mysql,Treading,socket)
這篇文章主要介紹了Python聊天室?guī)Ы缑鎸?shí)現(xiàn)的示例代碼(tkinter,Mysql,Treading,socket),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2021-04-04Python imutils 填充圖片周邊為黑色的實(shí)現(xiàn)
今天小編就為大家分享一篇Python imutils 填充圖片周邊為黑色的實(shí)現(xiàn),具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2020-01-01用python的requests第三方模塊抓取王者榮耀所有英雄的皮膚實(shí)例
下面小編就為大家分享一篇用python的requests第三方模塊抓取王者榮耀所有英雄的皮膚實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨想過(guò)來(lái)看看吧2017-12-12解決Python獲取文件提示找不到指定路徑can‘t?open?file?'area.py':
這篇文章主要給大家介紹了關(guān)于如何解決Python獲取文件提示找不到指定路徑can‘t?open?file?'area.py':[Errno?2]?No?such?file?or?directory的相關(guān)資料,文中通過(guò)圖文介紹的非常詳細(xì),需要的朋友可以參考下2023-11-11Django框架視圖函數(shù)設(shè)計(jì)示例
這篇文章主要介紹了Django框架視圖函數(shù)設(shè)計(jì),結(jié)合實(shí)例形式分析了Django框架視圖函數(shù)處理流程、原理與相關(guān)操作注意事項(xiàng),需要的朋友可以參考下2019-07-07Django Rest Framework構(gòu)建API的實(shí)現(xiàn)示例
本文主要介紹了Django Rest Framework構(gòu)建API的實(shí)現(xiàn)示例,包含環(huán)境設(shè)置、數(shù)據(jù)序列化、視圖與路由配置、安全性和權(quán)限設(shè)置、以及測(cè)試和文檔生成這幾個(gè)步驟,具有一定的參考價(jià)值,感興趣的可以了解一下2024-08-08Python?matplotlib?plotly繪制圖表詳解
plotly本身是個(gè)生態(tài)非常復(fù)雜的繪圖工具,它對(duì)很多編程語(yǔ)言提供接口。交互式和美觀易用應(yīng)該是?Plotly?最大的優(yōu)勢(shì),而?Matplotlib?的特點(diǎn)則是可定制化程度高,但語(yǔ)法也相對(duì)難學(xué),各有優(yōu)缺點(diǎn)。本文將通過(guò)示例詳細(xì)講解二者是如何繪制圖表的,需要的可以參考一下2022-03-03Py之pycocotools庫(kù)的簡(jiǎn)介、安裝、使用方法及說(shuō)明
這篇文章主要介紹了Py之pycocotools庫(kù)的簡(jiǎn)介、安裝、使用方法及說(shuō)明,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教2023-02-02