【问题标题】:python : how to disable auto sort when creating dictionarypython:创建字典时如何禁用自动排序
【发布时间】:2012-05-09 09:49:01
【问题描述】:

我需要这个案例的帮助:

m={}
m[1]=1
m[333]=333
m[2]=2

# Result:
{1: 1, 2: 2, 333: 333}

所以即使我最后没有输入“333”,我在打印出来时也会在字典末尾列出这个“333”。为什么这个“字典”会自动排序?以及如何禁用它?我可以创建一个功能来重新排序以修复订单。但这不是我想要的,我只是想打印并获取输出顺序,就像我输入数据时的顺序一样。有什么好的解释,有什么解决办法吗?

【问题讨论】:

标签: python sorting dictionary


【解决方案1】:

这不是排序。 dict 根本没有排序,所以你不能以任何方式影响键的顺序。在 2.7 和 3.1+ 中有 collections.OrderedDict,在 2.4-2.6 中也有 standalone module

【讨论】:

  • @wRAR : done ;-) .sorry 我是这个论坛的新手,我刚刚了解了这个论坛的工作方式(特别是关于评级和接受的事情)。很抱歉,非常感谢。
【解决方案2】:

存储在字典中的项目没有任何固有顺序。它们的打印顺序完全取决于每个键和字典中其他项的哈希值。

【讨论】:

    【解决方案3】:

    自 3.6 以来发布此问题很长时间后,但仅针对那些登陆此页面的人?字典保留添加项目的顺序。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2022-01-23
      • 2021-12-30
      • 2015-08-09
      • 2020-01-20
      • 1970-01-01
      • 2012-08-15
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多