python中defaultdict的用法详解
初识defaultdict
之前在使用字典的时候,用的比较随意,只是简单的使用dict.
然而这样在使用不存在的key的时候发生KeyError这样的一个报错,这时候就该defaultdict登场了.
如何使用defaultdict
可以这样
fromcollectionsimportdefaultdict d1=defaultdict(int)
或者这样
importcollections d1=collections.defaultdict(int)
defaultdict与dict实例化字典类型的区别
使用defaultdict任何未定义的key都会默认返回一个根据method_factory参数不同的默认值,而相同情况下dict()会返回KeyError.
比较下面代码:
d1=dict() d2=defaultdict(list) print(d1['a']) print(d2['a'])
defaultdict的构造
python官方文档中对defaultdict的定义如下:
classcollections.defaultdict([default_factory[,...]])
python官方文档中对defaultdict的解释如下:
defaultdic dictsubclassthatcallsafactoryfunctiontosupplymissingvalues
default_factory接收一个工厂函数作为参数,例如intstrlistset等.
defaultdict在dict的基础上添加了一个missing(key)方法,在调用一个不存的key的时候,defaultdict会调用__missing__,返回一个根据default_factory参数的默认值,所以不会返回Keyerror.
Example
Example1
s='mississippi' d=defaultdict(int) forkins: d[k]+=1 print(d)
Example2
s=[('red',1),('blue',2),('red',3),('blue',4),('red',1),('blue',4)] d=defaultdict(set) fork,vins: d[k].add(v) print(d)
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持毛票票。