如何在词典中查找重复值

时间:2013-12-09 03:55:17

标签: python python-3.x dictionary duplicates

我们如何在字典中找到并删除重复值及其键。

示例:

f = {1:4, 1:3, 4:4, 9:4, 5:7}

输出:

f = f = {1:3, 5:7}

正如您所看到的,他们重复值为4的所有键都已删除......

还有一种方法可以跟踪已删除的项目数量......在上述情况下,已删除了3项。

3 个答案:

答案 0 :(得分:5)

计算值:

import collections
value_occurrences = collections.Counter(f.values())

然后过滤出多次出现的那些:

filtered_dict = {key: value for key, value in f.items()
                 if value_occurences[value] == 1}

要查找删除的数量,只需从旧字典中减去新字典的大小。

答案 1 :(得分:1)

要跟踪已删除的项目数量,您可以创建一个变量= 0,然后每次删除某些内容时+ =该变量

你可以在执行此操作之前测量len(f),然后在运行代码后测量len(f),看看两者之间有什么区别,并且你已经删除了多少项

答案 2 :(得分:1)

试试这个

list1=[]
f = {1:4, 1:3, 4:4, 9:4, 5:7}
for value in f.values():
        if value not in list1:
                list1.append(value)
for key in f.keys():
        if key in list1:
                del f[key]
return f

输出将是

{1: 3, 5: 7, 9: 4}