按键以什么顺序插入字典?

时间:2014-08-20 17:15:45

标签: python dictionary

>>> stuff = {'age': 23, 'name': 'ZaneTribal', 'height': 74}
>>> print stuff
{'age': 23, 'name': 'ZaneTribal', 'height': 74}
>>> stuff['born in'] = 'Montreal'
>>> print stuff
{'age': 23, 'born in': 'Montreal', 'name': 'ZaneTribal', 'height': 74}
>>> stuff['children'] = 'Nope'
>>> stuff
{'age': 23, 'born in': 'Montreal', 'children': 'Nope', 'name': 'ZaneTribal', 'height': 74}
>>> stuff['zoo'] = 'WTF'
>>> stuff
{'name': 'ZaneTribal', 'age': 23, 'zoo': 'WTF', 'born in': 'Montreal', 'height': 74, 'children': 'Nope'}

当添加到dicts时,Python如何决定放置新密钥的位置?订单显然不是按字母顺序排列,也不是按类型排列。

3 个答案:

答案 0 :(得分:3)

字典无序。打印时它们出现的顺序取决于实现的内部细节。

如果您需要保留订单,请使用collections.OrderedDict

答案 1 :(得分:2)

订单未定义。 Python可以按照自己想要的顺序放置密钥,这个顺序可以在Python版本之间进行更改。你不应该依赖于dict键的顺序。

答案 2 :(得分:1)

python中的dict实际上是哈希表。

因此,跟踪python放置键的位置是没有意义的,因为散列后的内容应该被认为是随机的。

当您使用keys()提取每个键时,您也不应该对订单做任何假设。