2012-08-13 216 views
0

我有一个包含其中的值也是字典键值对的字典中删除有重复值的字典:如何从一个嵌套的字典

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

我想删除在字典中有重复的项目“文件名“在他们的价值观领域给我的结果:

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

你错过了' '' – 2012-08-13 10:14:19

+0

更新失踪' – Finglish 2012-08-13 10:21:10

回答

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)} 

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

​​