【发布时间】:2010-12-16 06:49:42
【问题描述】:
>>> D = {'a': 1, 'b': 2, 'c': 3}
>>> D
{'a': 1, 'c': 3, 'b': 2}
我刚刚在 Python shell 中做了这个,我只是想知道为什么键 'c' 会在键 'b' 之后???
【问题讨论】:
标签: python
>>> D = {'a': 1, 'b': 2, 'c': 3}
>>> D
{'a': 1, 'c': 3, 'b': 2}
我刚刚在 Python shell 中做了这个,我只是想知道为什么键 'c' 会在键 'b' 之后???
【问题讨论】:
标签: python
顺序与它们在内部的工作方式以及它们在哈希表中的最终顺序有关。这又取决于键的哈希值、插入的顺序以及您使用的 Python 实现。
顺序是任意的(但不是随机的),知道它是什么顺序永远不会有用。
要获得排序的键列表,只需使用sorted(D),在您的情况下将返回['a', 'b', 'c']。
【讨论】:
在 Python 2.7 中,您可以使用 Ordered Dict。
【讨论】:
最好将字典视为一组无序的键:值对,并要求键是唯一的(在一个字典中)。
【讨论】:
[1,7,3,2,5] 未排序,但 已 排序。 set 和 dict 是无序的,list 和 tuple 是有序的(可能会或可能不会排序)。
按照它喜欢的任何顺序。这就是字典的本质。如果您想要按特定顺序进行,则必须自己进行:
>>> 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)]
【讨论】: