Python 基于字典值的排序列表

Python 基于字典值的排序列表,python,list,dictionary,Python,List,Dictionary,我有一个dicty={6:34,5:40,3:70,2:80}和listm=[5,2,3],它只有dicty的一些键。我必须根据DICT y= {2,80,3:70,5:40,6:34 }进行排序,只考虑列表 M < /代码>中的键,最后结果应该有排序< m=[2,3 5] < /> > /p> < p> >可以使用排序()>代码>,该键函数将根据您的字典值对列表进行排序: >>> sorted(m, key= lambda x: -y.get(x)) [2, 3, 5]

我有一个dict
y={6:34,5:40,3:70,2:80}
和list
m=[5,2,3]
,它只有dict
y的一些键。我必须根据DICT<代码> y= {2,80,3:70,5:40,6:34 }进行排序,只考虑列表<代码> M < /代码>中的键,最后结果应该有排序< <代码> m=[2,3 5] < /> > /p> < p> >可以使用<代码>排序()>代码>,该键函数将根据您的字典值对列表进行排序:

>>> sorted(m, key= lambda x: -y.get(x))
[2, 3, 5]
请注意,由于
sorted()
以升序模式对项目进行排序,因此可以使用dict值的负值对列表进行降序排序。或者您可以将
reverse
参数更改为
True

>>> sorted(m, key= lambda x: y.get(x), reverse=True)
[2, 3, 5]
您可以将
sorted()
与一个键函数一起使用,该键函数将根据字典值对列表进行排序:

>>> sorted(m, key= lambda x: -y.get(x))
[2, 3, 5]
请注意,由于
sorted()
以升序模式对项目进行排序,因此可以使用dict值的负值对列表进行降序排序。或者您可以将
reverse
参数更改为
True

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

我不明白你的问题…你想根据dict上的值对列表进行排序还是怎么办?我不明白你的问题…你想根据dict上的值对列表进行排序还是怎么办?如果我有方法sort(m,y),我应该根据相同的参考m对列表进行排序。。。因此,在方法内部,如果我打印“Before”,m并调用sorted(m,key=lambda x:y.get(x),reverse=True)并调用print“After”,m m应该在同一个引用上排序……我该怎么做?@SagarR抱歉,我找不到你,请为问题添加你的解释。在下面的代码中,当我调用print“After Sorting”时,m。。。它应该打印[2,3,5]而不是[5,2,3]我该怎么做??导入操作符def sorting(y,m):排序(m,key=lambda x:-y.get(x))如果name='main':y={6:34,5:40,3:70,2:80}m=[5,2,3]打印“排序前”,m sorting(y,m)打印“排序后”,如果我有方法sort(m,y),我应该在同一个引用m上对其排序。。。因此,在方法内部,如果我打印“Before”,m并调用sorted(m,key=lambda x:y.get(x),reverse=True)并调用print“After”,m m应该在同一个引用上排序……我该怎么做?@SagarR抱歉,我找不到你,请为问题添加你的解释。在下面的代码中,当我调用print“After Sorting”时,m。。。它应该打印[2,3,5]而不是[5,2,3]我该怎么做??导入操作符def sorting(y,m):如果name='main':y={6:34,5:40,3:70,2:80}m=[5,2,3]打印“排序前”,m sorting(y,m)打印“排序后”,m