Python 对键上的嵌套dict进行排序

Python 对键上的嵌套dict进行排序,python,sorting,dictionary,Python,Sorting,Dictionary,我在排序和排序方面遇到了一个小问题 目前我有一个dict,布局如下: {"da": {1.0 : [], 1.5 : []}, "en" : {1.2 : [], 1.8 : []}} 我要做的是对键值上的每个嵌套dict按降序排序。 因此,输出应如下所示: {"da": {1.5 : [], 1.0 : []}, "en" : {1.8 : [], 1.2 : []}} 使用OrderedDict证明是一个相当大的挑战 outputDict = OrderedDict(sorted(inp

我在排序和排序方面遇到了一个小问题

目前我有一个dict,布局如下:

{"da": {1.0 : [], 1.5 : []}, "en" : {1.2 : [], 1.8 : []}}
我要做的是对键值上的每个嵌套dict按降序排序。 因此,输出应如下所示:

{"da": {1.5 : [], 1.0 : []}, "en" : {1.8 : [], 1.2 : []}}
使用OrderedDict证明是一个相当大的挑战

outputDict = OrderedDict(sorted(inputDict.items(), key=lambda t: t[1].keys()))
这给了我:

OrderedDict([('en', {1.2: [], 1.8: []}), ('da', {1.0: [], 1.5: []})])
您可以尝试以下方法:

import collections

a={"da": {1.0 : [], 1.5 : []}, "en" : {1.2 : [], 1.8 : []}}

print {k:collections.OrderedDict(sorted(v.items(),reverse=True)) for k,v in a.items()}
输出:

{'en': OrderedDict([(1.8, []), (1.2, [])]), 'da': OrderedDict([(1.5, []), (1.0, [])])}

它给了你什么?您似乎正在对外部字典进行排序,但希望内部字典发生更改。您是对的。我将编辑它以正确反映它。
t[1].keys()
将在Python 2中生成字典视图(Python 3)或任意字典顺序的键列表。按这两种排序都没有什么意义。最后但并非最不重要的一点是,我不清楚按降序排列的键值是什么意思;
inputdict
的键是
'da'
'en'
,预期的输出按升序排列。您的示例代码查看每个包含的字典的键,甚至这些键似乎都是按升序排列的,但我不清楚您是否按其中的最低键或最高键进行排序。如果要对嵌套字典进行排序,您必须使这些
OrderedDict
对象,不是外字典,这是我想要的。谢谢