首页 > 解决方案 > 如何安全地在 dict 中找到重复值?

问题描述

{
  "50": [2110,1,94],
  "51": [2105,1,95],
  "52": [2105,1,85],
  "53": [2105,1,95],
}

我想返回一个列表如下:

["51","53"]

标签: pythonlistdictionaryunique

解决方案


利用:

from collections import defaultdict

d = {
    "50": [2110, 1, 94],
    "51": [2105, 1, 95],
    "52": [2105, 1, 85],
    "53": [2105, 1, 95],
}

duplicates = defaultdict(list)
for key, values in d.items():
    duplicates[tuple(values)].append(key)

res = [values for values in duplicates.values() if len(values) > 1]
print(res)

输出

[['51', '53']]

推荐阅读