Python中的defaultdict函数

枫铃3年前 (2021-10-03)Python230
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不存在时,返回的就是这个函数的默认返回值。

'''
Python学习交流,免费公开课,免费资料,
免费答疑,系统学习加QQ群:579817333 
'''
>>> 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
>>>

相关文章

python 字典+列表集合+文件读取

字典示例 ************************ 各地食品的三级菜单************************* 1.使用字典嵌套字典...

python实现可以被with上下文管理的类或函数

开始之前先明确一下with机制 1.类包函数__ enter__()和__exit__()函数,即是可以被上下文管理的类 __enter__用来...

Python列表的常用方法

append 前面说过...

发表评论

访客

看不清,换一张

◎欢迎参与讨论,请在这里发表您的看法和观点。