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