python以什么顺序显示字典键?
>>> D = {'a': 1, 'b': 2, 'c': 3} >>> D {'a': 1, 'c': 3, 'b': 2}
我只是在Python shell中做了这个,我只是想知道为什么键'c'会在键'b'之后?
该命令与他们如何在内部工作以及他们在散列表中以什么顺序结束有关。 这又取决于键的哈希值,它们被插入的顺序以及您正在使用的Python实现。
顺序是任意的(但不是随机的),它将永远不会有用,知道它将是什么样的顺序。
要得到一个sorting的键列表,只需使用sorted(D)
,在你的情况下将返回['a', 'b', 'c']
。
在Python 2.7中,你可以使用Ordered Dict 。
从文档 :
最好将字典视为无序的键值对,并要求键是唯一的(在一个字典中)。
以任何顺序它喜欢。 这是字典的性质。 如果你想按照特定的顺序,你必须自己做:
>>> 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)]