>>> D = {'a': 1, 'b': 2, 'c': 3}
>>> D
{'a': 1, 'c': 3, 'b': 2}
我刚刚在Python shell中做了这个,我只是想知道为什么键'c'会出现在键'b'之后???
答案 0 :(得分:17)
订单与内部工作方式以及最终在哈希表中的顺序有关。这又取决于密钥哈希值,它们的插入顺序以及您正在使用的Python实现。
顺序是任意的(但不是随机的),知道它将是哪个顺序永远不会有用。
要获取已排序的键列表,只需使用sorted(D)
,在您的情况下将返回['a', 'b', 'c']
。
答案 1 :(得分:7)
在Python 2.7中,您可以使用Ordered Dict。
答案 2 :(得分:5)
最好将字典视为一组无序的键:值对,并要求键是唯一的(在一个字典中)。
答案 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)]