defaultdict()
这里的defaultdict(function_factory)构建的是一个类似dictionary的对象,其中keys的值,自行确定赋值,但是values的类型,是function_factory的类实例,而且具有默认值。比如default(int)则创建一个类似dictionary对象,里面任何的values都是int的实例,而且就算是一个不存在的key, d[key] 也有一个默认值,这个默认值是int()的默认值0.
from collections import defaultdict
dict = defaultdict( factory_function)
这个factory_function可以是list、set、str等等,作用是当key不存在时,返回的是工厂函数的默认值,比如list对应[ ],str对应的是空字符串,set对应set( ),int对应0。
对比dic,当key不存在的时候,会返回错误。
d = defaultdict(list)
d['first'] = [1]
print(d)
#out:
#defaultdict(<class 'list'>, {'first': [1]})
d['first'] = [1,2]
print(d)
#out
#defaultdict(<class 'list'>, {'first': [1, 2]})