我使用的字典看起来像这样:
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]
是否有一种简便的方法来删除所有值相对不唯一的键值对?
答案 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]
}