我有一个类似
的嵌套字典{ 'A' : { 100 : [ 'apple' , 'mango'] ,
98 : [ 'banana', 'grapes'],
101 : [ 'melon', 'peach'] } ,
'Bb' : { 16 : [ 'a' , 'm'] ,
67 : [ 'b', 's'],
0 : [ 'm', 'p'] } }
我希望字典按照数字排列,例如按升序排列98、100和101。
答案 0 :(得分:3)
尝试以下方法。首先,迭代您的字典并创建一个OrderedDict
,按键对元素进行排序,然后使用您的外部字典创建另一个OrderedDictionary
:
d = { 'A' : { 100 : [ 'apple' , 'mango'] , 98: [ 'banana', 'grapes'], 101: ['melon', 'peach'] } , 'Bb' : { 16 : [ 'a' , 'm'] , 67: [ 'b', 's'], 0: ['m', 'p'] } }
for key, value in d.items():
d[key] = OrderedDict(sorted(value.items()))
d = OrderedDict(sorted(d.items()))
输出:
print(d)
OrderedDict([('A',
OrderedDict([(98, ['banana', 'grapes']),
(100, ['apple', 'mango']),
(101, ['melon', 'peach'])])),
('Bb',
OrderedDict([(0, ['m', 'p']),
(16, ['a', 'm']),
(67, ['b', 's'])]))])