我正在尝试创建一个字典,其中的索引是字符串(“ 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'}
答案 0 :(得分:1)
为澄清起见,您使用的数据结构是python“字典”而不是数组。它将键映射到值。 Python字典没有内部顺序,因此它将仅按照您输入的顺序打印。
如果要按顺序排列字典,则可以使用称为OrderedDict的结构:
from collections import OrderedDict
exampleDict = OrderedDict([('a', 1), ('b', 2), ('c', 3), ('d', 4)])