python以什么顺序显示字典键?

时间:2010-12-16 06:49:43

标签: python

>>> D = {'a': 1, 'b': 2, 'c': 3}
>>> D
{'a': 1, 'c': 3, 'b': 2}

我刚刚在Python shell中做了这个,我只是想知道为什么键'c'会出现在键'b'之后???

4 个答案:

答案 0 :(得分:17)

订单与内部工作方式以及最终在哈希表中的顺序有关。这又取决于密钥哈希值,它们的插入顺序以及您正在使用的Python实现。

顺序是任意的(但不是随机的),知道它将是哪个顺序永远不会有用。

要获取已排序的键列表,只需使用sorted(D),在您的情况下将返回['a', 'b', 'c']

答案 1 :(得分:7)

在Python 2.7中,您可以使用Ordered Dict

答案 2 :(得分:5)

来自the documentation

  

最好将字典视为一组无序的键:值对,并要求键是唯一的(在一个字典中)。

答案 3 :(得分:2)

任何顺序都令人高兴。这就是字典的本质。如果您希望按特定顺序,则必须自己执行此操作:

>>> d = {'pax': 1, 'george': 2, 'guido' : 3}

>>> d
{'pax': 1, 'george': 2, 'guido': 3}

>>> [(key,d[key]) for key in sorted(d)]
[('george', 2), ('guido', 3), ('pax', 1)]