为什么字典值不在插入的顺序中?

Vik*_*tor 10 python dictionary sequence

当我声明一个列表1,2,3,4并且我对它做了一些事情,即使只是打印我也会得到相同的序列1,2,3,4.

但是当我对字典做任何事情的时候,它们总是会改变数字序列,就好像它是以一种我无法理解的扭曲方式排序.

test1 = [4,1,2,3,6,5]
print test1
test2 = {"c":3,"a":1,"b":2,"d":4}
print test2 

[4, 1, 2, 3, 6, 5]
{'a': 1, 'c': 3, 'b': 2, 'd': 4}
Run Code Online (Sandbox Code Playgroud)

世界上的'a'如何成为第一个元素和'c',即使按字母顺序对字典进行排序,它应该是1,2,3,4或a,b,c,d不是1,3,2, 4.wT?F @!$!@ $#@!

那么我如何打印,从字典中获取值而不改变元素的位置.

Eli*_*sky 12

Python中的字典按定义排序.使用OrderedDict,如果您需要在值插入(它可在Python 2.7和3.x)的顺序.

  • Viktor你必须自己维护排序或将其插入排序字典(这将保持插入顺序).你不能让'普通'字典保持排序顺序.是的,如果您依赖订单,即使您无法定义排序算法,它也会被"排序". (2认同)