在Python里面有一个模块collections,解释是数据类型容器模块。这里面有一个collections.defaultdict()经常被用到。主要说说这个东西。
综述:
这里的defaultdict(function_factory)构建的是一个类似dictionary的对象,其中keys的值,自行确定赋值,但是values的类型,是function_factory的类实例,而且具有默认值。比如default(int)则创建一个类似dictionary对象,里面任何的values都是int的实例,而且就算是一个不存在的key, d[key] 也有一个默认值,这个默认值是int()的默认值0.
defaultdict
dict subclass that calls a factory function to supply missing values。
这是一个简短的解释
defaultdict属于内建函数dict的一个子类,调用工厂函数提供缺失的值。
比较晕,什么是工厂函数:
来自python 核心编程的解释
Python 2.2 统一了类型和类, 所有的内建类型现在也都是类, 在这基础之上, 原来的
所谓内建转换函数象int(), type(), list() 等等, 现在都成了工厂函数。 也就是说虽然他
们看上去有点象函数, 实质上他们是类。当你调用它们时, 实际上是生成了该类型的一个实
例, 就象工厂生产货物一样。
下面这些大家熟悉的工厂函数在老的Python 版里被称为内建函数:
int(), long(), float(), complex(