Python中的defaultdict函數

在這裏插入圖片描述

from collections import defaultdict

defaultdict

用於產生一個帶有默認值的dict。主要針對key不存在的情況下,也希望有返回值的情況。

>>> a = dict()
>>> a['k1'] = 1
>>> a
{'k1': 1}
>>> a['k2']
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
KeyError: 'k2'
>>>

對於普通的dict,key不存在就報錯。

但是對於defaultdict,key不存在就會返回默認值。

那麼默認值如何設定?通過給defaultdict()方法傳參,傳入的是一個函數(或叫做方法),當key不存在時,返回的就是這個函數的默認返回值。

>>> a = defaultdict(int)
>>> a
defaultdict(<class 'int'>, {})
>>> a['k2']
0
>>>

此時就不會報錯。而且返回值是0。

我們還發現了,原來int這個內置函數的默認值是0。看這個示例:

>>> print(int())
0

這裏的函數可以是任意自定義函數,只要又default的return即可。

>>> from collections import defaultdict
>>> def fun(): return 666
...
>>> fun()
666
>>> a = defaultdict(fun)
>>> a
defaultdict(<function fun at 0x10a8185f0>, {})
>>> a['nonexist_key']
666
>>>

風雨悽悽 雞鳴喈喈

既見君子 雲胡不夷

2020年03月12日 20:18:09

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章