defaultdict使用示例

2022-08-27 03:03:12 字數 1214 閱讀 4534

依然是collections模組,提供了比基礎資料型別更為豐富,適合特定場景下的資料結構。當需要將某個鍵對映到乙個集合型別(list,tuple)時,有時候需要初始化集合型別。故我們經常會碰到以下的**場景。

d = {}

for key, value in pairs:

if key not in d:

d[key] =

而使用defaultdict時,我們可以在初始化時預設資料型別和預設值。

d = defaultdict(list)

for key, value in pairs:

defaultdict支援幾乎所有的dict熟悉和方法操作。額外,在初始化時,提供工廠屬性default_factory。預設為none,如果default_factory不是none,則不帶引數呼叫它以提供給定鍵的預設值,此值將插入鍵的字典中並返回。

defaultdict提供了乙個__miss__方法,該方法只會被__getitem__()呼叫,即在進行d[key]獲取key對應的值時。_missing_()方法使用default_factory屬性; 它從建構函式的第乙個引數(如果存在)初始化,如果不存在則初始化為none。

from collections import defaultdict

d = defaultdict(list)

>>> d

defaultdict(, )

嘗試編寫defaultdict的內部實現,如下:

class defaultdict(dict):

def __init__(self, default_factory):

self.default_factory = default_factory

def __missing__(self, key):

if self.default_factory is none:

raise keyerror(key)

return self.default_factory()

def __getitem__(self, key):

if key not in self:

super().__setitem__(key, self.__missing__(key))

return super().__getitem__(key)

python中defaultdict的用法詳解

當我使用普通的字典時,用法一般是dict 新增元素的只需要dict element value即,呼叫的時候也是如此,dict element 但前提是element字典裡,如果不在字典裡就會報錯,如 這時defaultdict就能排上用場了,defaultdict的作用是在於,當字典裡的key不存...

python中defaultdict的用法

當使用普通的字典時,用法一般是dict 新增元素的只需要dict element value即,呼叫的時候也是如此,dict element 但前提是element字典裡,如果不在字典裡就會報錯。這時defaultdict就能排上用場了,defaultdict的作用是在於,當字典裡的key不存在但被...

Python中的defaultdict函式

用於產生乙個帶有預設值的dict。主要針對key不存在的情況下,也希望有返回值的情況。a dict a k1 1 a a k2 traceback most recent call last file line 1,in keyerror k2 對於普通的dict,key不存在就報錯。但是對於def...