我看过(也写过)一些实现。有没有被认为是最好的或正在成为标准的实现?
所谓有序字典,是指对象对其键的顺序有一定概念,类似于PHP中的数组。 PEP 372 中的odict似乎是一个很有竞争力的候选者,但并不完全清楚它是否是胜者。
所谓有序字典,是指对象对其键的顺序有一定概念,类似于PHP中的数组。 PEP 372 中的odict似乎是一个很有竞争力的候选者,但并不完全清楚它是否是胜者。
easy_install ordereddict
进行安装,并像这样使用它:from ordereddict import OrderedDict
d = OrderedDict([("one", 1), ("two", 2)])
collections.OrderedDict
现在应该是广泛可用的,但如果您关心性能,可以考虑使用我的包 cyordereddict 作为替代方案。它是标准库OrderedDict的Cython直接移植版本,速度提升了2-6倍。
collections
模块中有OrderedDict,因此你应该将其视为“标准”。如果其功能足够,那么你应该使用它。collections.OrderedDict
提供的功能的超集。两者之间的区别在于,odict
是纯Python,而ordereddict
是一个更快的C
扩展模块。collections.OrderedDict
最初返回嵌套在其自己的值中的OrderedDict
的repr()
时存在错误。如果使用旧版ordereddict
的unittests的子集,就可以更早地发现这个错误。ordereddict
迁移到 bitbucket 并使其可以通过 pip
安装。之后我还会考虑 Python 3.X 的兼容性(可能基于一个简化版本,功能更像 collections.OrderedDict
)。网站上的链接应该会再次正常工作。 - Anthon