python - 为什么字典值不按插入顺序?

标签 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}

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

那么我如何在不改变元素位置的情况下打印,从字典中获取值呢?

最佳答案

Python 中的字典根据定义是无序的。如果您需要插入值的顺序,请使用 OrderedDict(它在 Python 2.7 和 3.x 中可用)。

关于python - 为什么字典值不按插入顺序?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6061380/

相关文章:

java - Map<String, String>,如何同时打印 "key string"和 "value string"

python - 为什么 `{*l}` 比 `set(l)` 快 - python 集合(不仅仅是对于集合,对于所有序列)

java - 如何从 int[] 数组打印最长的数字序列 (Java)

python - 导入错误: cannot import name 'regex_replace'

python - Python 中的稳健多元多项式回归

python - 是什么导致我的代码膨胀文本文件大小?

swift - 从字典生成章节标题 [Swift 3]

python - 检查字典是否有键的时间复杂度是多少?

oracle - 如何将 Oracle DB 中的所有序列重置为值 0?

python - 遍历列表 - 分割字符串