从字典中删除多次出现的所有值

Delete all values from a dictionary that occur more than once

我使用的字典看起来有点像这样:

data = {1: [3, 5], 2: [1, 2], 3: [1, 2, 3, 4], 4: [1, 2, 3], 5: [1, 2, 3]}

我想删除该字典中具有完全相同值的值及其对应键。所以我的字典应该是这样的:

data = {1: [3, 5], 2: [1, 2], 3: [1, 2, 3, 4]}

我在这里尝试使用它:Removing Duplicates From Dictionary 但是,尽管我尝试更改它,但它很快就会变得非常复杂,并且可能有更简单的方法可以做到这一点。我也试过使用 count() 函数,但它没有用。这是它的样子。可能是我声明错了?

no_duplicates = [value for value in data.values() if data.count(value) == 1]

有没有一种简单的方法可以删除所有值不唯一的键值对?

你可以通过字典推导来做到这一点,你可以用键值对创建一个字典,其中值计数为 1

def get_unique_dict(data):

    #Get the list of dictionary values
    values = list(data.values())

    #Make a new dictionary with key-value pairs where value occurs exactly once
    return {key: value for key, value in data.items() if values.count(value) == 1}

data = {1: [3, 5], 2: [1, 2], 3: [1, 2, 3, 4], 4: [1, 2, 3], 5: [1, 2, 3]}

print(get_unique_dict(data))

输出将是

{
    1: [3, 5], 
    2: [1, 2], 
    3: [1, 2, 3, 4]
}