<p>我不久前写了这段代码,它将根据存储的列表长度对字典进行排序,至少对python 3.7+适用</p>
<pre><code>dict1 = {'key1': [0,1,3,4,5], 'key2':[1,2], 'key3': [4,5,6]}
dict1_sorted = {k2: dict1[k2] for k2 in sorted(dict1, key=lambda k: len(dict1[k]))}
</code></pre>
<p><strong>编辑</strong></p>
<p>由于您示例中的dic不是字典而是字典列表,因此您没有尝试“根据值的长度对字典进行排序”,而是尝试根据其包含的字典的值的长度对列表进行排序,这可以通过以下操作完成:</p>
<pre><code>dic = [{'key': 'accounting manager',
'Results': [{'accountant': 3666.0},
{'controller': 1254.0},
{'financial analyst': 553.0},
{'accounting clerk': 490.0},
{'office manager': 355.0},
{'auditor': 309.0},
{'accounts payable clerk': 284.0},
{'finance manager': 260.0}]},
{'key': 'employee relations manager',
'Results': [{'human resources generalist': 142.0},
{'service manager': 121.0},
{'human resources specialist': 120.0},
{'engineering manager': 96.0},
{'human resources manager': 91.0}]},
{'key': '2d animator',
'Results': [{'artist': 51.0},
{'animator': 45.0},
{'freelancer': 12.0}]}
]
## assending order
dic_sorted = sorted(dic, key=lambda k: len(k['Results']))
print(dic_sorted)
## decending order
dic_sorted = sorted(dic, key=lambda k: len(k['Results']), reverse=True)
</code></pre>