Python:根据字典的值对列表进行排序

Fry*_*Man 2 python dictionary list python-2.7 python-3.x

我有一个字典y = {6:34,5:40,3:70,2:80}和列表m = [5,2,3],其中仅包含字典y的某些键,我必须根据字典的值进行排序,y = {2:80,3:70,5:40,6:34}并且仅考虑列表m中存在的键,并且最终结果应该已排序m =[2,3,5]

Kas*_*mvd 5

您可以使用sorted()按键功能,该功能将根据字典值对列表进行排序:

>>> sorted(m, key= lambda x: -y.get(x))
[2, 3, 5]
Run Code Online (Sandbox Code Playgroud)

请注意,由于sorted()以升序模式对项目进行排序,因此可以使用dict值的负值来使其对列表进行降序排序。或者,您可以将reverse参数更改为True

>>> sorted(m, key= lambda x: y.get(x), reverse=True)
[2, 3, 5]
Run Code Online (Sandbox Code Playgroud)