如何根据嵌套字典的内部值对Python字典进行排序?
例如,根据mydict
:
context
进行排序
mydict = {
'age': {'context': 2},
'address': {'context': 4},
'name': {'context': 1}
}
结果应该是这样的:
{
'name': {'context': 1},
'age': {'context': 2},
'address': {'context': 4}
}
答案 0 :(得分:17)
>>> from collections import OrderedDict
>>> mydict = {
'age': {'context': 2},
'address': {'context': 4},
'name': {'context': 1}
}
>>> OrderedDict(sorted(mydict.iteritems(), key=lambda x: x[1]['context']))
OrderedDict([('name', {'context': 1}), ('age', {'context': 2}), ('address', {'context': 4})])
答案 1 :(得分:5)
无论你怎么努力,你都无法对字典进行排序,因为它们是无序的集合。请改用OrderedDict
表单collections
模块。