【问题标题】:Delete all values from a dictionary that occur more than once从字典中删除多次出现的所有值
【发布时间】:2019-05-25 14:20:24
【问题描述】:

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

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]

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

【问题讨论】:

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


    【解决方案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]
    }
    

    【讨论】:

      猜你喜欢
      • 2021-11-12
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-03
      • 2010-11-12
      相关资源
      最近更新 更多