OrderedDict 不按顺序排列

2024-02-01

这个循环的想法是迭代列表。如果对象的某个属性不是 OrderedDict 的键,则会添加它。它是对象列表的字典

for object in someList:
  if object.DATE not in myOrderedDict:
     myOrderedDict[object.DATE]=[]
  myOrderedDict[object.DATE].append(object)

虽然它似乎确实使 OrderedDict 基本正确,但在打印时它最终会乱序。而不是有类似的东西(01/13) (02/13) (03/13)它更像是(02/13) (03/13) (01/13).
为什么会发生这种情况以及如何解决?


看来您期望以下项目OrderedDict按键订购,但事实并非如此。 OrderedDict 按添加到其中的项目的顺序进行排序。来自PEP 372 http://www.python.org/dev/peps/pep-0372/ FAQ:

OrderedDict 是否支持替代排序顺序(例如字母顺序)?

不,那些想要不同排序顺序的人确实需要使用另一种技术。 OrderedDict 是关于记录插入顺序的。如果对任何其他顺序感兴趣,那么另一个结构(如内存中 dbm)可能更适合。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

OrderedDict 不按顺序排列 的相关文章

随机推荐