如何从嵌套字典中删除具有重复值的字典

时间:2012-08-13 10:10:25

标签: python dictionary python-2.7

我有一个包含键值对的字典,其值也是字典:

{ 
    'item1':{'name':'filename', 'size':1024},
    'item2':{'name':'filename', 'size':1024},
    'item3':{'name':'diff_filename', 'size':1024},
    'item4':{'name':'diff_filename', 'size':1024}
}

我想删除字典中在其值中包含重复“filename”字段的项目,从而为我提供结果:

{ 
    'item1':{'name':'filename', 'size':1024},
    'item3':{'name':'diff_filename', 'size':1024}
}

1 个答案:

答案 0 :(得分:4)

使用辅助set来跟踪您已经看过的文件名:

seen = set()
{k: v for k, v in yourdict.iteritems() 
    if v['name'] not in seen and (seen.add(v['name']) or True)}

或者,作为循环更具可读性:

seen = set()
filtered = dict()
for k, v in yourdict.iteritems():
    if v['name'] in seen:
        continue
    seen.add(v['name'])
    filtered[k] = v
相关问题