首页 > 解决方案 > 使用列表中的值查找字典键

问题描述

diz = {'KTOP': 1194654, 'WDFR': 1217, 'WKLJ': 1306, 'MLKJ': 2958}

list = [1217, 1306, 2958, 1194654]

我正在寻找一个排序列表,其中仅包含我的字典的键,这些键的值 == 到我的列表的 int。

我如何得到它?

我已经对字典的值进行了排序,但现在我不知道如何使用值列表对键进行排序。

我需要这样的输出:

lOutput = [ 'WDFR', 'WKLJ', 'MLKJ' , 'KTOP' ]

标签: pythonlistsortingdictionary

解决方案


对于使用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']

推荐阅读