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

时间:2013-04-22 17:01:35

标签: python list sorting dictionary

我已经看过this postthis post以及其他许多人,但还没有找到我的问题的答案,也无法弄明白。

我有一份列表字典。例如,它看起来像:

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

我想根据列表中的特定项返回已排序(降序/反向)的键列表。例如,我想根据每个列表中的第4项对a,b,c进行排序。

这应该返回按值sorted_keys = ['b','a','c']排序的列表[6,4,2]

有意义吗?请帮忙......谢谢!

1 个答案:

答案 0 :(得分:9)

提供key函数,lambda最简单,排序颠倒:

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

关键功能告诉sorted 排序的内容;给定键值的第4项。

演示:

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