为啥python中字典的keys()以不同的顺序返回? [复制]

Posted

技术标签:

【中文标题】为啥python中字典的keys()以不同的顺序返回? [复制]【英文标题】:why keys() of dictionary in python returns in a different order? [duplicate]为什么python中字典的keys()以不同的顺序返回? [复制] 【发布时间】:2015-04-04 01:19:52 【问题描述】:

我创建了一个字典 a 并尝试使用方法 keys() 来返回它的键。下面是我得到的。我注意到keys() 的输出不是按字母顺序或字典中的原始顺序。

a
Out[1]: 1: 'JAN', 2: 'FEB', 3: 'MAR', 'APR': 4, 'MAY': 5

a.keys()
Out[2]: ['APR', 1, 2, 3, 'MAY']

任何人都可以帮助我理解为什么会发生这种情况。以及这里使用的 order keys() 是什么?

【问题讨论】:

根本没有顺序....那是因为python字典不是按键排序的...你第一次很幸运。 :p 因为不是,所以需要排序>>> a=1: 'JAN', 2: 'FEB', 3: 'MAR', 'APR': 4, 'MAY': 5 >>> sorted(a.keys()) [1, 2, 3, 'APR', 'MAY'] @littlejoshua 字典没有排序:docs.python.org/2/tutorial/datastructures.htmlthe keys used in the dictionary, in arbitrary order (if you want it sorted, just apply the sorted() function to it) 改用ordereddict。 【参考方案1】:

python 中的字典使用哈希作为键,它不保存顺序。因此,您不能指望键顺序 - 在运行和调用期间可能会有所不同。 如果你需要hashmap保存顺序,你应该使用ordered dict

【讨论】:

以上是关于为啥python中字典的keys()以不同的顺序返回? [复制]的主要内容,如果未能解决你的问题,请参考以下文章

python基础(1.8-2.1)

Python中如何以dict的key排序输出?

6.3 遍历字典

Python 字典 keys() 方法

python 如何循环读取字典中的keys所对应的values

python中字典以key排序,以value排序。以及通过value找key的方式