Python中的OrderedDict如何保持顺序

4

我很好奇collections库中的OrderedDict是如何保持键/值对的顺序的?我在网上搜索了一下,但没有找到答案。


10
以下是需要翻译的内容: https://github.com/python/cpython/blob/c20c97f6122e7a99e46cbd6c9ac8cb2941a3bf7a/Lib/collections.py#L35 - Stefan Pochmann
谢谢,这非常有帮助。 - tyleax
Python 3.6 中的标准 dict 也是有序的,但它更加高效。 - Mark Ransom
1个回答

6

根据源代码,这似乎是实现为一个dict,其中包含一个用于排序的双向链表的键,以及另一个将键映射到它们在列表中位置的dict

  • 插入只是添加到列表的末尾。
  • 删除使用第二个dict从列表中删除元素。
  • 迭代遍历链接的列表。

1
使用OrderedDict比普通字典会有更多的开销。 - tyleax

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接