我已经模拟了一个我认为您正在获取的示例,并且 OrderedDict 确实保留了您插入的顺序。这可能不是您想要的。在这种情况下,您可以查看 sorted() 解决方案。这应该澄清:
import collections
class ob():
def __init__(self, d, v):
self.DATE = d
self.VALUE = v
orderedDict = collections.OrderedDict()
normalDict = {}
someList = [ob('02/13', 2), ob('03/13',3), ob('04/13', 4) , ob('01/13', 5), ob('02/13', 15)]
for a in someList:
if a.DATE not in orderedDict:
orderedDict[a.DATE]=[]
normalDict[a.DATE]=[]
orderedDict[a.DATE].append(a)
normalDict[a.DATE].append(a)
orderedDictSorted = collections.OrderedDict(sorted(orderedDict.items()))
print 'Ordered Dict'
print orderedDict.keys()
print 'Dict'
print normalDict.keys()
print 'Ordered Dict Sorted'
print orderedDictSorted.keys()