【问题标题】:Dictionary order of items index changes automatically during runtime项目索引的字典顺序在运行时自动更改
【发布时间】:2017-09-24 15:26:34
【问题描述】:

我在类的构造函数中为它分配了一些键/值数据作为类字段之一的字典中项目的索引顺序,每次运行程序时都会在运行时自动更改。

我还使用 Cython 调试器检查了程序,有趣的是实际上 python 本身改变了项目的索引!

我正在使用 Python3.5.4

我在字典定义的行之后放了一个断点,然后 here is a picture of this problem.

【问题讨论】:

  • 如果没有看到代码,我们将无法提供帮助。但是这些 dicts 具有完全相同的键。
  • @DanielRoseman 刚刚上传了一张代码图片

标签: python debugging dictionary indexing


【解决方案1】:

字典不保留顺序(即,如果您遍历字典的键或值,它们的显示顺序不一定与您定义字典时的顺序相同)!如果您想保留订单,您必须使用collections.OrderedDict

【讨论】:

    【解决方案2】:

    字典在 Python 中是无序的。这不是错误,而是字典的工作方式。

    您可能想了解collections.OrderedDict
    这是Python 3.6 中的更改列表。据我所知,3.6 中的 dicts 可能会保留顺序,但您需要自己尝试一下。最好使用OrderedDict

    【讨论】:

      【解决方案3】:

      我认为您指的是字典中项目的顺序

      这是正常的,因为字典是无序的,因此项目的呈现顺序不需要遵循项目添加到字典的顺序。同样,对字典的键进行迭代通常不会遵循创建顺序。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2013-08-21
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多