从字典中删除重复项
问题内容:
我具有以下Python 2.7字典数据结构(我不控制源数据-照原样来自另一个系统):
{112762853378:
{'dst':['10.121.4.136'],
'src':['1.2.3.4'],
别名:['www.example.com']
},
112762853385:
{'dst':['10.121.4.136'],
'src':['1.2.3.4'],
别名:['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和别名可以重复。所有记录都将始终具有dst和src,但并非每个记录都必然具有别名,如第三条记录所示。
在样本数据中,前两个记录中的任何一个都将被删除(对我来说无关紧要)。第三条记录将被认为是唯一的,因为尽管dst和src相同,但是缺少别名。
我的目标是删除所有重复了dst,src和别名的记录-不管键如何。
这个 新秀 如何做到这一点?
另外,我对Python的有限理解将数据结构解释为字典,字典中存储的值…字典的dict,这是正确的吗?
问题答案:
您可以遍历字典中的每个项目(键值对),然后将它们添加到结果字典中(如果值不在结果字典中)。
input_raw = {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']
}
}
result = {}
for key,value in input_raw.items():
if value not in result.values():
result[key] = value
print result