我是编程和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 ..或者基本上只需将其改为普通字典。
是否与将值附加到字典有关。
答案 0 :(得分:1)
只需将其传递给dict()
函数:
d = dict(d)
对于你的第二个问题:defaultdict是一个工厂,它创建字典,设置字典,默认值为不存在的键。当你试图获取密钥时,它不会在字典中提出KeyError,而是使用你尝试过的密钥创建字典,并且在创建函数时从函数返回值,这是defauldict的参数。
有关更多信息,请参阅文档: https://docs.python.org/2/library/collections.html#collections.defaultdict