collections defaultdict(默认字典)
class collections.
defaultdict
([default_factory[, ...]])
返回一个新的类字典对象。defaultdict是内置类dict的子类,它重写了一个方法并且增加了一个可写的实例变量。其余方法与dict的方法相同,这里不在阐述。
第一个参数提供default_factory
属性的初始值; 它默认为None
。所有剩余的参数都被视为传递给dict的
构造函数,包括关键字参数。
版本2.5中的新功能。
defaultdict对象
除了支持标准dict
操作外,还支持以下方法:
__missing__(key)
- 如果
default_factory
属性为None,则以key作为参数将会引发KeyError
异常。 - 如果
default_factory
不是None,则在没有参数的情况下会调用它来为给定key提供的默认值,这个值会被赋值key,并返回。 - 如果调用
default_factory
引发异常时,则会传播此异常。 - 当找不到请求的key时,此方法由dict类的
__getitem__()
方法调用; 这个方法无论返回或引发什么都会被__getitem__()
原封不动的返回。 - 请注意,除了
__getitem__()
之外的任何操作__missing__()
都不会调用。这意味着get()
,与标准词典一样,它将None
作为默认值返回而不是使用default_factory
。
defaultdict
对象支持以下实例变量:
default_factory
该属性由__missing__()
方法使用; 它从构造函数的第一个参数初始化(如果存在),如果不存在则初始化 ,如果不存在则初始化为None。
华丽的分割线,下次在添加自己的理解。
参考文献如下: