You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何获取字典中值最大的N个键并保留其在原字典中的先后顺序

实现方案

Python 3.7及以上版本默认保留字典的插入顺序,只需要两步即可实现需求:

  1. 先提取字典中值最大的N个值,存入集合方便后续快速校验
  2. 按原字典的顺序遍历所有键值对,只要值属于前N大的集合就保留到结果中

完整代码示例

# 原字典
original_dict = {'gfg': 1, 'best': 6, 'geeks': 3, 'for': 7, 'is': 4}
N = 3

# 步骤1:获取前N大的值集合
top_n_values = set(sorted(original_dict.values(), reverse=True)[:N])
# 步骤2:按原字典顺序筛选符合条件的键
result = [key for key, val in original_dict.items() if val in top_n_values]

print(result)

运行输出:

['best', 'for', 'is']

逻辑说明

  • 用sorted对所有值做降序排序后取前N个,转成集合是为了把后续的in判断时间复杂度降到O(1),数据量小的情况下不转集合直接判断也可以
  • 直接遍历原字典的键值对,就能保证最终结果的顺序和原字典中键的顺序完全一致
  • 如果遇到值重复的场景,只需调整sorted的排序规则即可适配你的筛选需求

内容的提问来源于stack exchange,提问作者Fat Cat

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.30 19:15:04