defaultdict与{}创建字典时的区别

来源:互联网 发布:手机怎么开通4g网络 编辑:程序博客网 时间:2024/06/05 05:22

最近在做spark教程中的lab3时,发现教程中有个语句使用了defaultdict(lambda: None)创建字典,那么defaultdict()与{}有什么区别呢

defaultdict

众所周知,在字典中访问不存在的键时,将会报错

sample_one = [(0, 'mouse'), (1, 'black')]a = {}                      a.update(sample_one)a[i] for i in range(3)KeyError: 2

这是由于sample中没有键2,这时使用defaultdict()就可以避免报错

sample_one = [(0, 'mouse'), (1, 'black')]a = defaultdict(lambda : None)a.update(sample_one)a[i] for i in range(3)Out[34]: ['mouse', 'black', None]

由此可以看出,对于没有预先赋值的键,defaultdict(lambda: None)默认初始化为None

扩展阅读http://blog.csdn.net/topfire7/article/details/19168799

0 0
原创粉丝点击