Python中按值对字典中的键进行排序

5

我看到了这篇文章这篇文章以及其他很多文章,但是没有完全找到答案,也无法理解。

我有一个列表字典。例如:

Dict = {'a':[1,2,3,4], 'b':[9,8,7,6], 'c':[8,5,3,2]}

我希望返回一个按照列表中特定项(第四个)排序的键的列表(降序/反向)。例如,我想基于每个列表中的第四个项目对a、b、c进行排序。
这应该返回列表sorted_keys = ['b','a','c'],它们是根据值[6,4,2]排序的。
明白了吗?请帮忙……谢谢!
1个回答

9

提供一个key函数,使用lambda最简单,并按照相反顺序排序:

sorted(Dict.keys(), key=lambda k: Dict[k][3], reverse=True)

关键函数告诉sorted按什么排序;给定键的值中第四个项目。

演示:

>>> sorted(Dict.keys(), key=lambda k: Dict[k][3], reverse=True)
['b', 'a', 'c']

@MartijnPieters +1 好的解决方案,你不需要 .keys() - jamylak

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接