python:如何在创建字典时禁用自动排序

时间:2012-04-29 09:29:01

标签: python sorting dictionary

我需要这个案子的帮助:

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

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

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

3 个答案:

答案 0 :(得分:22)

不是排序。 dict根本没有订购,因此您无法以任何方式影响关键订单。 2.7和3.1+中有collections.OrderedDict,2.4-2.6也有standalone module

答案 1 :(得分:2)

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

答案 2 :(得分:0)

发布此问题后的时间很长,但仅适用于自3.6以来登陆该页面的用户?词典保留了添加项目的顺序。