【问题标题】:How can I safely find a duplicate values in dict? [duplicate]如何安全地在 dict 中找到重复值? [复制]
【发布时间】:2021-11-02 15:50:31
【问题描述】:
{
  "50": [2110,1,94],
  "51": [2105,1,95],
  "52": [2105,1,85],
  "53": [2105,1,95],
}

我想返回如下列表:

["51","53"]

【问题讨论】:

  • 为什么值是列表很重要?对于值不是 列表的 dicts,您有解决方案吗?如果您尝试将它与问题中的数据结构一起使用,那会如何失败?

标签: python list dictionary unique


【解决方案1】:

用途:

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']]

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-07
    • 2011-05-12
    • 1970-01-01
    相关资源
    最近更新 更多