返回具有最大整数值的N个字典键的列表

时间:2016-11-17 11:08:45

标签: python-3.x

my_dict = {'label': 6, 'label_2': 5, 'label_3': 9, 'label_4': 12}

我想根据它们的最高值创建一个列表,其中包含前2个(或3个,4个或50个......这将会有所不同)字典键。所以在上面的例子中,如果我想要前2名,我应该得到:

['label_3', 'label_4']

前三名我应该得到:

['label', 'label_3', 'label_4']

等等。

在阅读了其他一些stackoverflow线程之后,我一直在尝试使用heapq,但是无法让它以我想要的方式工作。希望得到一些帮助。

1 个答案:

答案 0 :(得分:0)

当然,我在这里发布的那一刻,我找到了一个解决方案(感谢heapq documentation)。这有效:

my_list = heapq.nlargest(3, my_dict, key=my_dict.get)

这将通过my_dict并返回具有3个最大值的键。

感谢。