我已經嘲笑了什麼,我覺得你越來越爲例按字母順序排列你的快譯通,和OrderedDict確實保留的順序,你插入,這可能不是你想要的東西。在這種情況下,您可以查看已排序()的解決方案。這應該澄清:
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()
如果沒有在'someList'裏面有什麼**是不可能**的。可推測的第一個'object.DATE'值是'(02/13)'.. –
OrderedDict保存順序對象添加到它們,所以必須是添加'object.DATE'的順序。每次執行'myOrderedDict [object.DATE] = []'語句時,您都可以輕鬆地驗證通過打印或記錄某些內容的順序。另外,你如何印刷其內容? – martineau
我同意Martijn和martineau--也許你認爲它應該是一個「排序字典」,但是你按照插入它們的順序(這是記錄的行爲)獲取元素。如果你想要它排序,然後做類似排序(myOrderedDict.items()) –