python - 根据字典的值对列表进行排序

标签 python list dictionary

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

最佳答案

您可以将 sorted() 与键函数一起使用,该函数将根据字典值对列表进行排序:

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

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

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

关于python - 根据字典的值对列表进行排序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35789546/

相关文章:

python - 查找维度为 (365,1) 的两个数组的平均值会导致 ValueError : cannot copy sequence with size 365 to array axis with dimension 1

python从列表列表中选择范围

python - 解析 .csv 文件跳过一行

Swift - 访问单例字典导致 EXC_BAD_ACCESS

python - 每月特定日期的 Pandas 日期范围

python - WinRM - 指定的凭据被服务器拒绝

python - 获取列表元素中的子字符串 Python - 网页抓取

Python从二维列表中删除元素

c - 将新节点添加到列表时出现段错误

python - 将 Python 字典导出到 Geojson - 从 'coordinates' 值中删除双引号