2

我创建了一个字典,有 3 个键,每个键都有一个字符串作为数据。

创建后,为了验证它,我打印出来只是为了发现键的顺序与我输入它们的方式不同。

如果 python 以某种递增或递减的顺序排列键是有道理的,但在这种情况下,也很难相信这一点。对于与该密钥相关的数据大小的合理性,这听起来也太酷了。

为什么python会在他自己的脑海中安排钥匙?

从其他一些讨论中,我确实发现: 字典未排序。它们显示的顺序是由内部逻辑决定的,不会与您定义它们的顺序相对应。

但是我更感兴趣的是内部发生的事情,以及导致这种情况的内部逻辑是什么;很难知道字典是通过键而不是索引访问的事实,因此在项目的顺序上几乎没有任何区别。

这是我的shell的输出窗口: 在此处输入图像描述

4

1 回答 1

0

在 6 年零 9 个月仍未得到答复后,我想自己回答并结束这个问题。

  1. 正如@KobeJohn 所说,令人满意的答案是“Python 的字典本质上是无序的。
  2. 当字符串化时,表示与它的存储方式无关。
  3. 有关详细信息,请参阅官方文档
  4. 可以通过这篇StackOverflow 帖子了解字典的实现。

注意:这个答案的重点完全是 python v2.7。从理论上讲,随着 Python 3.x 的出现,现在应该已经过时了。现在已经回答了这个问题,只是为了回答和关闭它。

于 2020-08-09T19:01:15.417 回答