从字典中删除重复项

43
我有以下Python 2.7字典数据结构(我无法控制源数据 - 它来自于另一个系统):
{112762853378: 
   {'dst': ['10.121.4.136'], 
    'src': ['1.2.3.4'], 
    'alias': ['www.example.com']
   },
 112762853385: 
   {'dst': ['10.121.4.136'], 
    'src': ['1.2.3.4'], 
    'alias': ['www.example.com']
   },
 112760496444: 
   {'dst': ['10.121.4.136'], 
    'src': ['1.2.3.4']
   },
 112760496502: 
   {'dst': ['10.122.195.34'], 
    'src': ['4.3.2.1']
   },
 112765083670: ...
}
字典键值将始终是唯一的。 dst,src和alias可以重复。所有记录将始终具有dst和src,但并非每个记录都必须具有别名,如第三条记录所示。
在样本数据中,前两条记录中的任何一条都将被删除(哪个被删除对我来说无关紧要)。 第三条记录将被视为唯一的,因为尽管dst和src相同,但缺少alias。
我的目标是删除所有dst,src和alias均已重复的记录 - 不管键是什么。
这个新手怎么做到呢?
此外,我对Python的有限理解将数据结构解释为带有存储在字典中的值的字典...字典的字典,这正确吗?
11个回答

-3
example = {
    'id1':  {'name': 'jay','age':22,},
    'id2': {'name': 'salman','age': 52,},
    'id3': {'name':'Ranveer','age' :26,},
    'id4': {'name': 'jay', 'age': 22,},
}
for item in example:
    for value in example:
        if example[item] ==example[value]:
            if item != value:
                 key = value 
                 del example[key]
print "example",example         

1
请使用Python中的{}按钮格式化您的答案。在迭代列表或字典时修改它们是一个非常糟糕的想法。非常糟糕。 - Mr. T
欢迎来到StackOverflow:如果您发布代码、XML或数据样本,请在文本编辑器中突出显示这些行,并单击编辑器工具栏上的“代码示例”按钮({ })或使用键盘上的Ctrl+K进行漂亮的格式化和语法高亮! - WhatsThePoint
嵌套的任何脚本语言中的 for 循环都不是一个好主意... 现在也是时候从 Python 2.x 迁移了。 - mirekphd

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接