gpt4 book ai didi

python - 过滤字典并删除最低值

转载 作者:行者123 更新时间:2023-11-28 22:18:17 24 4
gpt4 key购买 nike

我有如下字典。有没有办法输出具有 5 个最高值的字典?

如果第 5 个最高值存在并列,我需要包含这些键。

输入字典:

{
"1": 1,
"12": 1,
"13":2,
"3": 5,
"5":8,
"7":3,
"4":8,
"10":7
}

期望的结果:

{
"3": 5,
"5":8,
"7":3,
"4":8,
"10":7
}

最佳答案

关系的计算:

val = sorted(d.values(), reverse=True)[4]
res = {k: v for k, v in d.items() if v >= val}

print(res)

{'3': 5, '5': 8, '7': 3, '4': 8, '10': 7}

解释

  • 使用 sortedreverse=True 计算第 5 个最高值。请记住,索引从 0 开始,因此使用 [4] 进行索引。
  • 使用字典理解从字典中选择值大于计算值的所有项目。

优化

正如@Chris_Rands 所指出的,一种更有效的方法是使用heapq 来计算第 5 个最高值:

import heapq

val = heapq.nlargest(5, d.values())[-1]
res = {k: v for k, v in d.items() if v >= val}

关于python - 过滤字典并删除最低值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/50644186/

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