Quicksort dictort到OrderedDict

时间:2018-04-09 22:45:28

标签: python dictionary ordereddictionary

在python中,如何快速将嵌套字典排序为OrderedDict?例如:

{'susan': {'number': '5', 'fav_color': 'yellow'},
'josh': {'number': '1', 'fav_color': 'blue'},
'casey': {'number': '11', 'fav_color': 'orange'}}

我想对数字进行排序,以便我最终得到:

{'josh': {'number': '1', 'fav_color': 'blue'},
'susan': {'number': '5', 'fav_color': 'yellow'},
'casey': {'number': '11', 'fav_color': 'orange'}}

1 个答案:

答案 0 :(得分:2)

您不能诉诸OrderedDict。如果您查看collections.OrderedDict的来源,排序顺序将存储在链接列表中,这是一个您无法更改的“私有”双下划线变量。

但是,您可以对迭代的键和值进行排序,并根据您的排序首选项创建新的OrderedDict

OrderedDict(sorted(d.items(), key=lambda x: int(x[1]['number'])))