从字典中查找 n 个最大值

Nuj*_*Ali 3 python dictionary

我正在 Python 项目中工作,我遇到了一个问题,正如我在下面解释的那样,但涉及其他数据。例如,如果我有这个字典:

fruitsCount= {"apple": 24, "orange": 20, "banana":18, "grape":13, "kiwi": 13}
Run Code Online (Sandbox Code Playgroud)

如何返回具有最大值的键?如果我想返回三个最大的怎么办?

我用过heapq.nlargest(3, fruitCount.values),但我不知道如何用钥匙归还它们

注意:fruitsCount是从另一个字典使用后返回的字典Counter()

输出:应该是相同的fruitsCount字典,其中n最大 fruitsCount.values

Mar*_*ers 6

您需要在itemsheapq.nlargest()上使用,并使用参数告诉它从该对中获取值:key

heapq.nlargest(3, fruitCount.items(), key=lambda i: i[1])
Run Code Online (Sandbox Code Playgroud)

这将返回 3 个最大的(key, value)对。

或者您可以只使用该类collections.Counter(),它有一个most_common()方法可以为您执行此操作:

Counter(fruitCount).most_common(3)
Run Code Online (Sandbox Code Playgroud)