gpt4 book ai didi

python - 获取字典中第 x 大项

转载 作者:太空狗 更新时间:2023-10-30 02:29:57 24 4
gpt4 key购买 nike

我希望从键的对应值中获取字典中第 x 大的项。

例如,对于字典:

 y = {'a':55, 'b':33, 'c':67, 'd':12}

我希望能够轻松提取 'b' 作为第三大键。

最初,当我只在前三个出现之后时,我复制了字典,找到最大值(例如在 Getting key with maximum value in dictionary? 之后),从最大值中删除键,然后重新运行。当寻找多个最高值时,这种方法显得相当麻烦。有没有一种简单的方法可以获取第x大项对应的key?

最佳答案

使用 heap queue算法:

import heapq
y = {'a':55, 'b':33, 'c':67, 'd':12}
print heapq.nlargest(n=3, iterable=y, key=y.get)[-1]
# b

对于大型词典,这比每次都对整个词典进行排序会更好。具体来说,对于 n 元素的字典,您要在其中寻找 k 最大的元素,这在 O(n log k) 中运行O(n log n)

另请注意,这会按照列表的顺序为您提供所有三个最大值,只需删除 [-1]:

print heapq.nlargest(n=3, iterable=y, key=y.get)
# ['c', 'a', 'b']

关于python - 获取字典中第 x 大项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29932225/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com