如何对具有月份名称作为键的python字典进行排序

cha*_*tra 3 python

我有一个类似的python字典

{'JUL':15,'MAR': 54,'DEC':65,'OCT':90}
Run Code Online (Sandbox Code Playgroud)

我希望它根据月份来说排序,例如MAR,JUL,OCT和DEC在python中.

我该怎么做?

Dhr*_*hak 7

字典是无序的,你不能对字典进行排序.您需要一个ordereddict,您可以从当前dict的键,值对的已排序元组列表中创建.

>>> months = ['JAN','FEB','MAR','APR','MAY','JUN','JUL','AUG','SEP','OCT','NOV','DEC']
>>> input = {'JUL':15,'MAR': 54,'DEC':65,'OCT':90}
>>> from collections import OrderedDict
>>> OrderedDict(sorted(input.items(),key =lambda x:months.index(x[0])))
OrderedDict([('MAR', 54), ('JUL', 15), ('OCT', 90), ('DEC', 65)])
Run Code Online (Sandbox Code Playgroud)