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

Python列表字典按n、r、sd键对比删除低v值字典的实现方法

实现方案

核心逻辑为:以n、r、sd三个值组成的可哈希元组作为分组键,遍历所有字典项时仅保留每个分组中v值最大的条目,最终提取所有分组的保留条目即可得到结果。

可直接运行的代码

# 原数据需将null替换为Python可识别的None
ab = [
      {
        'n': 'abc',
        'r': 'PHX',
        'sd': 'cert',
        'dd': None,
        'TimeCreated': 1627298805136,
        'v': 2,
        'o': 'symrxt7mhzuu3o5kq'
      },
      {
        'n': 'abc',
        'r': 'PHX',
        'sd': 'cert',
        'dd': None,
        'TimeCreated': 1631868530689,
        'v': 3,
        'o': '52cf7qrfdalpa'
      },
      {
        'n': 'def',
        'r': 'ASHBURN',
        'sd': 'cert',
        'dd': None,
        'TimeCreated': 1628827511212,
        'v': 2,
        'o': 'mjmbw2oabhxiq'
      },
      {
        'n': 'def-kup',
        'r': 'ASHBURN',
        'sd': 'cert',
        'dd': None,
        'TimeCreated': 1598527021488,
        'v': 1,
        'o': '5a'
      },
      {
        'n': 'ghi',
        'r': 'AP_SYDNEY_1',
        'sd': 'cert',
        'dd': None,
        'TimeCreated': 1610377812778,
        'v': 1,
        'o': '2zy'
      },
      {
        'n': 'ghi',
        'r': 'AP_SYDNEY_1',
        'sd': 'cert',
        'dd': None,
        'TimeCreated': 1631877819065,
        'v': 2,
        'o': 'ongu7be56y7cc'
      },
      {
        'n': 'jkl',
        'r': 'EU_FRANKFURT_1',
        'sd': 'cert',
        'dd': None,
        'TimeCreated': 1611334435645,
        'v': 1,
        'o': 'xpa'
      },
      {
        'n': 'jkl',
        'r': 'EU_FRANKFURT_1',
        'sd': 'cert',
        'dd': None,
        'TimeCreated': 1631879049498,
        'v': 2,
        'o': '57nrzqhrmwa'
      }  
    ]

temp = {}
for item in ab:
    # 构造分组唯一标识
    key = (item['n'], item['r'], item['sd'])
    if key not in temp or item['v'] > temp[key]['v']:
        temp[key] = item

# 最终结果
res = list(temp.values())

# 打印验证结果
import json
print(json.dumps(res, indent=2, ensure_ascii=False))

补充说明

  • 若同分组内出现多个v值相同且均为最大值的条目,上述代码默认保留第一个遍历到的条目,可根据需求调整替换规则。
  • 时间复杂度为O(n),仅需遍历一次原列表即可完成处理,效率远高于嵌套循环两两对比的方案。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.25 12:54:02