python中defaultdict字典功能特性介紹
defaultdict是普通字典dict的一個(gè)子類(lèi)。通過(guò)collections庫(kù)的defaultdict()方法創(chuàng)建。
defaultdict()需要傳入的參數(shù)為 類(lèi)名。(type類(lèi)型)
首先,以int類(lèi) 作為參數(shù)傳入為例,
from collections import defaultdict dedict = defaultdict(int) print(dedict)

不同于普通的字典,其特性在于,當(dāng)用一個(gè)defaultdict中不存在的鍵來(lái)調(diào)用時(shí),不會(huì)報(bào)KeyError錯(cuò)誤
以調(diào)取’a’鍵的值為例:
print(dedict['a'])

此鍵的值默認(rèn)為零。這是defaultdict()參數(shù)為int的情況,參數(shù)不同,默認(rèn)值也不同。
defaultdict()需要傳入的參數(shù)為 類(lèi)名。(type類(lèi)型)
傳入其他類(lèi),來(lái)創(chuàng)建defaultdict(),效果如下:
from collections import defaultdict dedict1 = defaultdict(list) dedict2 = defaultdict(set) dedict3 = defaultdict(dict) dedict4 = defaultdict(tuple) dedict5 = defaultdict(int) dedict6 = defaultdict(float) dedict7 = defaultdict(str) # 創(chuàng)建一個(gè)什么用都沒(méi)有的類(lèi) class A(object): ? ? pass # 傳入可用! dedict8 = defaultdict(A) print(dedict1['a']) print(dedict2['a']) print(dedict3['a']) print(dedict4['a']) print(dedict5['a']) print(dedict6['a']) print(dedict7['a']) print(dedict8['a'])
程序運(yùn)行結(jié)果如下:

可以看出,不存在的鍵的默認(rèn)值為 傳入 類(lèi) 的 默認(rèn)實(shí)例對(duì)象。
默認(rèn)值的布爾值通常為False,但也不一定。
是否為False跟類(lèi)有關(guān),如此處的通過(guò)A類(lèi)的布爾值就為T(mén)rue。
甚至,還可以套娃:
dedict9 = defaultdict(defaultdict) print(dedict9['a'])
defaultdict常用于統(tǒng)計(jì)多個(gè)目標(biāo)數(shù)據(jù)的個(gè)數(shù),并存儲(chǔ)在defaultdict字典中。
示例如下:
from collections import defaultdict bag = ["cheese", "Bread", "apple", "Bread", "orange", "cheese", 'apple',"milk", "apple", "bananas", "milk"] count = defaultdict(int) for item in bag: ? ? count[item] += 1 print(count)

到此這篇關(guān)于python中defaultdict字典功能特性介紹的文章就介紹到這了,更多相關(guān)python中defaultdict字典功能特性內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
基于python opencv單目相機(jī)標(biāo)定的示例代碼
這篇文章主要介紹了基于python opencv單目相機(jī)標(biāo)定的實(shí)現(xiàn)代碼,代碼簡(jiǎn)單易懂,對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2022-01-01
python對(duì)ip地址進(jìn)行排序、分類(lèi)的方法詳解
這篇文章主要介紹了python對(duì)ip地址進(jìn)行排序、分類(lèi)的方法詳解,IP協(xié)議全稱(chēng)為“網(wǎng)際互連協(xié)議Internet?Protocol”,IP協(xié)議是TCP/IP體系中的網(wǎng)絡(luò)層協(xié)議,需要的朋友可以參考下2023-07-07
使用apidoc管理RESTful風(fēng)格Flask項(xiàng)目接口文檔方法
下面小編就為大家分享一篇使用apidoc管理RESTful風(fēng)格Flask項(xiàng)目接口文檔方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-02-02
python使用tkinter模塊實(shí)現(xiàn)文件選擇功能
這篇文章主要介紹了python使用tkinter模塊實(shí)現(xiàn)文件選擇功能,文章圍繞主題展開(kāi)詳細(xì)的內(nèi)容介紹,具有一定的參考價(jià)值,需要的小伙伴可以參考一下2022-06-06
unittest+coverage單元測(cè)試代碼覆蓋操作實(shí)例詳解
這篇文章主要為大家詳細(xì)介紹了unittest+coverage單元測(cè)試代碼覆蓋操作的實(shí)例,具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下2018-04-04
Python數(shù)據(jù)類(lèi)型--字典dictionary
這篇文章主要介紹了Python數(shù)據(jù)類(lèi)型字典dictionary,字典是另一種可變?nèi)萜髂P?,且可存?chǔ)任意類(lèi)型對(duì)象。下面詳細(xì)內(nèi)容需要的小伙伴可以參考一下,希望對(duì)你有所幫助2022-02-02
python使用response.read()接收json數(shù)據(jù)的實(shí)例
今天小編就為大家分享一篇python使用response.read()接收json數(shù)據(jù)的實(shí)例,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧2018-12-12

