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

如何安全查找Python字典中的重复值并返回对应的键列表

Python 实现逻辑

因为列表属于不可哈希类型,无法直接作为分组统计的键,所以我们先将列表类型的value转为可哈希的元组,再按该值对原字典的key做分组,最后筛选出元素数量≥2的分组就是有重复value的key集合。

代码实现

def get_duplicate_keys(raw_dict):
    grouped = {}
    for k, v in raw_dict.items():
        # 列表转元组获得可哈希的标识
        hash_key = tuple(v)
        grouped.setdefault(hash_key, []).append(k)
    # 过滤出有重复值的分组
    duplicate_key_groups = [keys for keys in grouped.values() if len(keys) > 1]
    # 示例只需要第一组重复的key,多组重复可直接返回duplicate_key_groups
    return duplicate_key_groups[0] if duplicate_key_groups else []

# 测试运行
if __name__ == "__main__":
    test_data = {
      "50": [2110,1,94],
      "51": [2105,1,95],
      "52": [2105,1,85],
      "53": [2105,1,95],
    }
    print(get_duplicate_keys(test_data)) 
    # 输出:['51', '53']

注意事项

  • 如果字典值存在嵌套列表/字典等不可哈希的元素,可以先把value序列化为JSON字符串作为哈希键,替换tuple(v)为json.dumps(v, sort_keys=True)即可,需要提前导入json模块
  • 如果需要获取所有重复的key分组,直接返回duplicate_key_groups即可,会返回所有存在重复值的key列表集合
  • 该实现时间复杂度为O(n),n为字典的键值对数量,运行效率较高

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.27 16:06:06