繁体   English   中英

Python如何处理混合类型的字典键排序,为什么?

[英]How does Python handle ordering dictionary keys with mixed types and why?

我正在尝试创建一个字典,其中的索引是字符串(“ 20”和“ 0”)和整数(10和11)的混合,但是每次打印出字典时,输出似乎都是随机变化的。 我已经读过python中的字典应该保持插入字典中的元素的顺序,那么为什么会发生元素的这种混排呢?

arr = {};
arr['20'] = "hello"
arr['0'] = "hey"
arr[10] = "hi"
arr[11] = "yo"

print(arr)

我希望输出为:

{'20: 'hello', '0': 'hey', 10: 'hi', 11: 'yo'}

但是输出最终重新排列数组中的每个元素并将10和11转换为字符串:

{'20': 'hello', 10: 'hi', 11: 'yo', '0': 'hey'}

为了澄清起见,您使用的数据结构是python“字典”而不是数组。 它将键映射到值。 Python字典没有内部顺序,因此它只会按照您输入的顺序打印。

如果要按顺序排列字典,则可以使用称为OrderedDict的结构:

from collections import OrderedDict
exampleDict = OrderedDict([('a', 1), ('b', 2), ('c', 3), ('d', 4)])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM