0

根据 python 规范,字典从 3.7 开始排序。此处对此进行了讨论,例如:https ://stackoverflow.com/a/39980744/1576254

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

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

4

1 回答 1

2

从这个链接:https ://realpython.com/python-ordereddict/它讲述了 OrderedDict 和内置 dict 之间的三个区别。

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

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

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

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

于 2021-12-27T17:02:40.933 回答