defaultdict在python中接收调用对象

1、说明

有时候为了方便起见,就算某个键在映射里不存在,我们也希望在通过这个键读取值的时候能得到一个默认值。为了达到这个目的,可以通过 defaultdict 这个类型而不是普通的 dict。

2、实例

In[7]:fromcollectionsimportdefaultdict

In[8]:res_dict=defaultdict(int)

In[9]:forlanginlangs:
...:res_dict[lang]+=1
...:

In[10]:res_dict
Out[10]:
defaultdict(int,
{'C#':1,
'java':1,
'kotlin':1,
'php':1,
'python':2,
'swift':1})

In[11]:res_dict['c++']
Out[11]:0

这样就完美解决了上述所有问题, defaultdict 构造函数接收一个可调用的对象,当 __getitem__ 方法找不到值的时候就会调用该对象返回一个值。