python - 使用列表中的值查找字典键
问题描述
diz = {'KTOP': 1194654, 'WDFR': 1217, 'WKLJ': 1306, 'MLKJ': 2958}
list = [1217, 1306, 2958, 1194654]
我正在寻找一个排序列表,其中仅包含我的字典的键,这些键的值 == 到我的列表的 int。
我如何得到它?
我已经对字典的值进行了排序,但现在我不知道如何使用值列表对键进行排序。
我需要这样的输出:
lOutput = [ 'WDFR', 'WKLJ', 'MLKJ' , 'KTOP' ]
解决方案
对于使用Inbuilt-python
功能,您可以参考 Amit Vikram Singh的回答。其他方法可以参考这个方法。
逻辑:
Numpy
内置argsort
将产生排序参数,您可以使用它对键进行排序。
np.argsort(list(diz.values()))
代码:
import numpy as np
diz = {'KTOP': 1194654, 'WDFR': 1217, 'WKLJ': 1306, 'MLKJ': 2958}
keys = list(diz.keys())
print([keys[i] for i in np.argsort(list(diz.values()))])
输出:
['WDFR', 'WKLJ', 'MLKJ', 'KTOP']
推荐阅读
- python - 我在 Python 中创建菜单但出错
- reactjs - TS 表达式生成的联合类型过于复杂,无法用 Material-UI 和 @react-three/fiber 表示
- python - 实施 Pandas 滚动窗口应用时出错
- java - 什么时候应该在数据库应用程序中使用 OffsetDateTime、ZonedDateTime 和 Instant?
- dart - 对 dart 中的多个枚举应用相同的扩展
- python - 是否可以通过我正在寻找的结果更改 URL?
- scala - Spark 驱动程序不会因异常而崩溃
- python - QtWidgets 中来自 QInputDialog 的两个输入
- javascript - React:更新 setInteval 中的状态数组
- jenkins - 通过Warnings-NG插件将cfn-lint报告导入Jenkins