python中的字典不保留顺序的事实是什么意思?在这种情况下,顺序到底是什么意思?

时间:2019-05-29 12:53:38

标签: python dictionary

我正在学习python基础知识,并试图完全理解编程的逻辑。在有关字典的教程中,它说它们不遵循顺序,我并没有真正得到顺序,但是感觉是要理解的重要部分。

1 个答案:

答案 0 :(得分:2)

考虑Python 3.7中的两个dict实例:

>>> d1 = {'a': 1, 'b': 2}
>>> d2 = {'b': 2, 'a': 1}

A dict会记住键的插入顺序,但仅使用该信息来迭代键。只要这组键是相同的,并且每个键都映射到相同的值,则两个dict都被认为是相等的,而不管其迭代顺序如何。

>>> d1 == d2
True
>>> list(d1)
['a', 'b']
>>> list(d2)
['b', 'a']

但是OrderedDict会将插入顺序视为值本身的整体属性。

>>> from collections import OrderedDict
>>> od1 = OrderedDict(d1)
>>> od2 = OrderedDict(d2)
>>> list(od1)
['a', 'b']
>>> list(od2)
['b', 'a']
>>> od1 == od2
False