python中defaultdict字典功能特性解析

defaultdict是普通字典dict的一個子類。通過collections庫的defaultdict()方法創建。
defaultdict()需要傳入的參數為 類名。(type類型)
首先,以int類 作為參數傳入為例,

from collections import defaultdict
dedict = defaultdict(int)
print(dedict)

在這裡插入圖片描述

不同於普通的字典,其特性在於,當用一個defaultdict中不存在的鍵來調用時,不會報KeyError錯誤
以調取’a’鍵的值為例:

print(dedict['a'])

在這裡插入圖片描述

此鍵的值默認為零。這是defaultdict()參數為int的情況,參數不同,默認值也不同。

defaultdict()需要傳入的參數為 類名。(type類型)
傳入其他類,來創建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)

# 創建一個什麼用都沒有的類
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'])

程序運行結果如下。

在這裡插入圖片描述

可以看出,不存在的鍵的默認值為 傳入 類 的 默認實例對象。
默認值的佈爾值通常為False,但也不一定。
是否為False跟類有關,如此處的通過A類的佈爾值就為True。

甚至,還可以套娃

dedict9 = defaultdict(defaultdict)
print(dedict9['a'])

在這裡插入圖片描述

defaultdict常用於統計多個目標數據的個數,並存儲在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)

在這裡插入圖片描述

到此這篇關於python中defaultdict字典功能特性解析的文章就介紹到這瞭,更多相關python defaultdict字典內容請搜索WalkonNet以前的文章或繼續瀏覽下面的相關文章希望大傢以後多多支持WalkonNet!

推薦閱讀: