【问题标题】:How to change defaultdict to normal dict [duplicate]如何将defaultdict更改为普通dict [重复]
【发布时间】:2014-10-05 02:26:58
【问题描述】:

我是编程和 python 的初学者。

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

例如我做了一个默认字典。

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)

现在当我返回 d 时,我会得到类似的东西。

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

所以我的问题是 2 倍,defaultdic 的含义是什么,它与普通 dic 有何不同。以及如何摆脱字典前面的 defaultdict .. 或者基本上只是将其更改为普通字典。

这与我如何将值附加到字典有关吗?

【问题讨论】:

    标签: python dictionary defaultdict


    【解决方案1】:

    只需通过dict()函数即可:

    d = dict(d)
    

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

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

    【讨论】:

    • 嘿,感谢您提供的重要信息!但我似乎得到了一个 KeyError
    • @Ali 如果您希望我们告诉您错误在哪里,我们需要查看您的代码。因此,要么将此新代码添加到您的问题中(确保缩进正确),或者更好的是,开始一个新问题。
    猜你喜欢
    • 1970-01-01
    • 2013-12-24
    • 2017-05-14
    • 2012-11-08
    • 2018-05-15
    • 1970-01-01
    • 1970-01-01
    • 2018-11-16
    • 1970-01-01
    相关资源
    最近更新 更多