为什么字典没有订购?

时间:2015-08-06 01:21:55

标签: python object

我在浏览词典时遇到了麻烦。

for i in max_money:
print(max_money[i])

0.01
20
10
2
0.5
1
5
0.10000000000000001
50
0.050000000000000003
0.25

当我测试循环(max_money)时,它不会按照我在上面输入的顺序显示字典。任何人都可以解释为什么以及如何按照上面的顺序正确显示它?

示例输出:

50
20
10
5
2
1
.50
.1
.05
.01

目标:

{{1}}

1 个答案:

答案 0 :(得分:1)

字典没有秩序感,实际的顺序取决于字典的插入和删除历史以及python实现,这就是你以任意顺序取回元素的原因。

如果订单对您很重要,您应该使用collections.OrderedDict,它会保留您添加元素的顺序。

示例 -

>>> from collections import OrderedDict
>>> d = OrderedDict()
>>> d[1] = 2
>>> d[2] = 3
>>> d[3] = 4
>>> for i in d:
...     print(d[i])
...
2
3
4