我需要这个案子的帮助:
m={}
m[1]=1
m[333]=333
m[2]=2
# Result:
{1: 1, 2: 2, 333: 333}
所以即使我最后没有输入'333',我也会在字典末尾列出'333'。为什么这个'字典'做自动排序?以及如何禁用它?我可以创建一个重新排序以修复订单的功能。但这不是我想要的,我只是想打印并获得输出顺序,就像输入数据时的顺序一样。有没有什么好的解释,是否有任何解决方案?
答案 0 :(得分:22)
不是排序。 dict
根本没有订购,因此您无法以任何方式影响关键订单。 2.7和3.1+中有collections.OrderedDict
,2.4-2.6也有standalone module。
答案 1 :(得分:2)
存储在字典中的项目没有任何固有顺序。打印出的顺序完全取决于每个键和字典中其他项的哈希值。
答案 2 :(得分:0)
发布此问题后的时间很长,但仅适用于自3.6以来登陆该页面的用户?词典保留了添加项目的顺序。