从字典中删除多次出现的所有值
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]
}
我使用的字典看起来有点像这样:
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]
}