字典的键在添加时不按顺序排列?

时间:2015-03-18 04:55:47

标签: python dictionary

>>> d={}
>>> d['c']=3
>>> d['b']=2
>>> d['a']=1
>>> d
{'a': 1, 'c': 3, 'b': 2}
>>> d.keys()
['a', 'c', 'b']

词典中的键是否按照相同的顺序排列,是否被添加到词典中? 他们的订单是什么?

如果我想按字典中的键添加到字典中,我该怎么办?

感谢。

2 个答案:

答案 0 :(得分:5)

dict是无序数据结构。当你迭代它们时,键会以某种顺序出现,但这可能与它们的添加顺序几乎没有相似之处。作为回报,您可以O(1)查找。

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

答案 1 :(得分:2)

Python词典不会保留订单,您不能指望任何特定订单。字典是价值的商店,按设计,价值将通过其键引用 - 而不是由特定的"槽"他们是谁。

如果您需要保留添加元素的顺序,请使用" slot"由索引引用,例如myList中[3]。如果您需要将两个值耦合在一起(对应一个"键"和一个"值"如示例所示),请使用元组列表。