【问题标题】:How to find duplicate element dict of list in python?如何在python中查找列表的重复元素字典?
【发布时间】:2021-06-06 12:50:26
【问题描述】:

如何在python中的dict列表中找到最大重复值?

例如

 smp_dict =
 { 0: [18, 2, 17, 12, 15, 0, 3],
   1: [13, 0, 3, 11, 4],
   2: [18, 2, 17, 12, 15, 8],
   3: [17, 12, 15, 5, 0, 3, 11],
   4: [9, 13]} 

我期望的输出

 result = [17,12,15,0,3,13,11]

result[0] = 最常见的值和 result[-1] = 最不常见的值

请帮帮我

【问题讨论】:

  • 这些键有什么意义吗?或者这只是单个列表的另一种表示形式?
  • 其他值在哪里?比如9、5、8?不是所有的值都被使用了?

标签: python sorting dictionary


【解决方案1】:

您可以使用 collections.Counter 将所有值的所有值放入 dict 中,然后按出现顺序保持键(项目)

from collections import Counter

smp_dict = {
    0: [18, 2, 17, 12, 15, 0, 3],
    1: [13, 0, 3, 11, 4],
    2: [18, 2, 17, 12, 15, 8],
    3: [17, 12, 15, 5, 0, 3, 11],
    4: [9, 13]
}

c = Counter(x for sublist in smp_dict.values() for x in sublist)
# {17: 3, 12: 3, 15: 3, 0: 3, 3: 3, 18: 2, 2: 2, 13: 2, 11: 2, 4: 1, 8: 1, 5: 1, 9: 1}

result = [x[0] for x in c.most_common()]
print(result)  # [17, 12, 15, 0, 3, 18, 2, 13, 11, 4, 8, 5, 9]

【讨论】:

    猜你喜欢
    • 2022-08-09
    • 2016-06-29
    • 1970-01-01
    • 2010-10-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-11-17
    相关资源
    最近更新 更多