Python词典在解释器中重新排列?

tij*_*jko 2 python interpreter dictionary

可能重复:
Python字典,保持键/值与声明的顺序相同

当我注意到我在python解释器中创建的字典回来时出现了意想不到的结果时,我正在进行代码学院的一些练习.

我正在使用python2.7,当我输入:

>>> dict_a = {'x':9, 'y':10, 'z':20}
Run Code Online (Sandbox Code Playgroud)

我称之为:

>>> dict_a
{'y':10, 'x':9, 'z':20}
Run Code Online (Sandbox Code Playgroud)

所以我投入:

>>> dict_b = {'a':1, 'b':2, 'c':3}
>>> dict_b
{'a':1, 'c':3, 'b':2}
Run Code Online (Sandbox Code Playgroud)

我想我错过了一些基本的东西但是,经过一些搜索我不知道是什么?如果有人可以帮助解释为什么会发生这种情况,我们将非常感激.

Dan*_*man 10

字典未分类.它们显示的顺序是由于内部逻辑,并不符合您定义它们的顺序.但是,由于您不按顺序而是按键访问字典,因此这很少重要.

  • 在极少数情况下它很重要,有[``collections.OrderedDict``](http://docs.python.org/py3k/library/collections.html#collections.OrderedDict). (5认同)
  • @tijko基本上,对于有序集合,您可以依赖元素的某些顺序.使用列表,订单将由添加和删除元素的方式明确控制.使用OrderedDict,订单是(折扣很少使用的方法)由第一次看到密钥时控制.Sorted是一个更强的语句,意味着该集合不仅有序,而且通过对元素进行排序来排序.我们在Python中几乎没有排序集合的例子,但是`bisect`模块维护着一个排序列表.在其他语言中,基于树的集合和dicts是常见的,并且这些是有序的. (2认同)