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

时间:2019-05-25 14:20:25

标签: python-3.x dictionary find-occurrences

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

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 个答案:

答案 0 :(得分: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]
}