Python中的defaultdict函数与Trie树

博客介绍了Python中普通dict和defaultdict的区别。普通dict在key不存在时会报错,而defaultdict可在key不存在时返回默认值。默认值通过给defaultdict()传参设定,传入函数,key不存在时返回该函数默认返回值,如int函数默认值为0,也可用自定义函数。

dict()

对于普通的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'
>>>

from collections import defaultdict

用于产生一个带有默认值的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
>>>

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值