如何将defaultdict更改为普通字典

时间:2014-10-05 02:26:59

标签: python dictionary defaultdict

我是编程和python的初学者。

所以我有兴趣找出 defaultdict 与普通 {} dict之间的区别。

例如,参见我做了一个defaultdict。

import collections
d = collections.defaultdict(list)
s = [('yellow', 1), ('blue', 2), ('yellow', 1), ('blue', 4), ('red', 1)]

for k, v in s:
if v not in d[k]: # if value not in list already
    d[k].append(v)

现在,当我回来时,我得到类似的东西。

defaultdict(<class 'list'>, {'blue': [2, 4], 'red': [1], 'yellow': [1]})

所以我的问题是2折,defaultdic是什么意思,它与普通的dic有什么不同。我怎样才能摆脱字典前面的 defaultdict ..或者基本上只需将其改为普通字典。

是否与将值附加到字典有关。

1 个答案:

答案 0 :(得分:1)

只需将其传递给dict()函数:

d = dict(d)

对于你的第二个问题:defaultdict是一个工厂,它创建字典,设置字典,默认值为不存在的键。当你试图获取密钥时,它不会在字典中提出KeyError,而是使用你尝试过的密钥创建字典,并且在创建函数时从函数返回值,这是defauldict的参数。

有关更多信息,请参阅文档: https://docs.python.org/2/library/collections.html#collections.defaultdict