【问题标题】:is there any difference between dict and OrderedDict (py3.7+) [duplicate]dict和OrderedDict(py3.7+)之间有什么区别[重复]
【发布时间】:2022-01-26 14:00:21
【问题描述】:

根据 python 规范,字典从 3.7 开始排序。这在这里讨论,例如:https://stackoverflow.com/a/39980744/1576254

我的问题是:我仍然在库实现中看到 OrderedDict,并检查 Python3.8 中 collections.OrderedDict 的内容,我发现它没有别名为内置 dict。

collections.OrderedDict 对内置 dict 有什么优势吗?用户可以看到它有什么不同吗? (很明显它是一个不同的类,在运行时可以检查,这意味着至少有这个区别)

【问题讨论】:

标签: python ordereddict


【解决方案1】:

来自这个链接:https://realpython.com/python-ordereddict/ 它说明了 OrderedDict 和内置 dict 之间的三个区别。

  1. 意图信号:如果您使用 OrderedDict 而不是 dict,那么您的代码会清楚地表明字典中项目的顺序很重要。您清楚地表明您的代码需要或依赖于底层字典中的项目顺序

  2. 控制项目的顺序:如果您需要重新排列或重新排序字典中的项目,那么您可以使用 .move_to_end() 以及 .popitem() 的增强变体

  3. 平等测试行为:如果您的代码比较字典是否相等,并且项目的顺序在比较中很重要,那么 OrderedDict 是正确的选择

OrderedDict 是 dict 的子类,因为 dict 是 python 中的一个类。我还建议您阅读以上文章的其余部分,因为它还有一些其他有趣的信息。

【讨论】:

    猜你喜欢
    • 2013-02-20
    • 1970-01-01
    • 2013-10-07
    • 2021-12-17
    • 2019-11-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多