2014-11-21 78 views
-2

试图了解这里发生了什么与python字典。我正在尝试使用dic.values()返回项目列表。不过,我想不通的顺序的项目应该在要返回这是什么原因在python字典中的这个命令

例如:

dic = {'a':10, 'b':9, 'c':11, 'd':12} 
>>> dic.values() 
[10, 11, 9, 12] 

返回的通过按键排序或项目分类的逻辑选项不是一个,而是完全不同的东西

+0

哇,堆栈溢出已变得更加严峻。去年类似的“重复”问题是一个受欢迎的问题,但这个问题正在被撕碎 – user3684792 2014-11-21 16:26:11

+0

如果有重复,你可能想提及它。另外,有些人对措辞很挑剔。我不是其中之一。 – merlin2011 2014-11-21 16:27:27

+0

它已被martijn标记为复本。我在看那 – user3684792 2014-11-21 16:28:42

回答

3

Python集合中没有“逻辑”排序。它通常是按散列顺序打印的,散列顺序应该是任意的。

+0

's/random/arbitrary /',但有我的+1。 – ch3ka 2014-11-21 16:22:19

+0

唯一的保证(这是有用的)是,如果你调用'keys'和'values'而不修改它们之间的词典,给定位置的值将与相同位置的键相对应。 – hobbs 2014-11-21 16:25:42

+0

好的,所以如果我要向字典中添加另一个关键字,现有元素的顺序将被保留,关键字将被简单地插入到某个实现相关位置中? – user3684792 2014-11-21 16:41:24