字典 - 无序,但反向打印,为什么?

时间:2017-09-11 09:36:52

标签: python python-3.x

my_dict = {"one":1, "two":2, "three":3}
print(my_dict)

我是新手。我被告知字典是无序的,但输出仍然是这种或那种的顺序......它在这里是相反的。

为什么在一个看似无序的字典中,上面代码的输出如下?

{'three': 3, 'two': 2, 'one': 1}

如果有人能解释我会非常感激。

感谢。

1 个答案:

答案 0 :(得分:1)

"无序"意味着订单是任意的和非重要的,而不是它是纯粹随机的。此顺序取决于底层实现如何在内部存储密钥,并且自1.5.x天以来已经更改了很多次。除了dict.keys()dict.values()将保持同步,即断言:

之外,您永远不应假设此订单的任何内容。
all(dict.values()[x] == dict[dict.keys()[x]] for x in range(len(dict)))

永远是真的。