Python向dict和defaultdict添加元素

时间:2014-08-27 12:05:43

标签: python python-2.7 dictionary

有普通字典:

ordinarydict = {}
ordinarydict['somekey']
print ordinarydict

我会收到错误。 KeyError "somekey" 这是预期的行为。

所以,有defaultdict:

from collections import defaultdict
d = defaultdict(int)
d['somekey']
print d

>>> defaultdict(<type 'int'>, {'somekey': 0})

我没有在dict中添加任何内容,我只是用无效键调用了字典。但现在新元素被添加到defaultdict。

2 个答案:

答案 0 :(得分:1)

这是defaultdict的重点:你用一个可调用的构造一个(在这种情况下,int),当一个不存在的密钥被访问时,它会调用它(生成{{1 }),并将其插入字典。它会在您访问密钥时自动创建密钥。

答案 1 :(得分:0)

因为默认情况下defaultdict会将缺少的密钥添加到字典中,如source中所示。

此行为也记录在docs

  
    
      

如果default_factory不是None,则不带参数调用它以提供给定键的默认值,该值将插入键的字典中并返回。