defaultdict使用示例

defaultdict是类似dict的容器,和dict的区别是:

当访问的key不存在时,dict会有keyError;而defaultdict会返回默认值(初始化时设置)

defaultdict的简单使用

示例代码如下(defaultdictTest1.py):

#! /usr/bin/env python
#-*- coding:utf-8 -*-

from collections import *

d1 = defaultdict(int)
print d1
print d1['a']
d1['b'] += 3
print d1['b']

d2 = defaultdict(list)
d2['a'].append(1)
d2['b'] += [1,2,3]
print d2

运行效果如下:

$ python defaultdictTest1.py
defaultdict(<type 'int'>, {})
0
3
defaultdict(<type 'list'>, {'a': [1], 'b': [1, 2, 3]})

上述代码创建了一个默认值为int的d1的defaultdict,输出d1[‘a’]时会调用int的构造函数,结果为0;

创建了一个以list为默认值的d2,元素可以直接执行list相关操作。

该代码的github地址: https://github.com/mike-zhang/pyExamples/blob/master/dataStructure/defaultdict_examples/defaultdictTest1.py