从字典中删除重复项

嗨,我有一本词典,里面有这样的数据
Dict={'file1.txt':['a','B','C','D','E'],'file2.txt':['a','F','C','G','E'],'file3.txt':['t','F','C']}
有没有人可以帮我写一段代码,删除重复的值并将文件更改为
Dict={'file1.txt':['B','D'],'file2.txt':['G'],'file3.txt':['t']}
(仅应保留唯一值)

# 回答1


不要使用
迪克特
作为一个识别符。它将屏蔽内置函数
Dict()

以下是几种方法:

选择 | 换行 | 行号
  1. dd = {'file1.txt': ['A', 'B' , 'C' , 'D' , 'E' ] ,
  2.       'file2.txt': ['A', 'F' , 'C' , 'G' , 'E' ] ,
  3.       'file3.txt': ['T', 'F' , 'C']}
  4.  
  5. # Create a dictionary with a count of labels
  6. dd1 = {}
  7. for seq in dd.values():
  8.     for label in seq:
  9.         v = dd1.get(label, 0)
  10.         dd1[label] = v+1
  11.  
  12. for key in dd:
  13.     dd[key] = [label for label in dd[key] if dd1[label] == 1]
  14. print dd
  15.  
  16.  
  17. dd = {'file1.txt': ['A', 'B' , 'C' , 'D' , 'E' ] ,
  18.       'file2.txt': ['A', 'F' , 'C' , 'G' , 'E' ] ,
  19.       'file3.txt': ['T', 'F' , 'C']}
  20.  
  21. # Create an extended list from dd.values()
  22. extended = dd.values()[0][:]
  23. for seq in dd.values()[1:]:
  24.     extended.extend(seq[:])
  25. for key in dd:
  26.     dd[key] = [label for label in dd[key] if extended.count(label) == 1]
  27. print dd

产出:

选择 | 换行 | 行号
  1. >>> {'file1.txt': ['B', 'D'], 'file3.txt': ['T'], 'file2.txt': ['G']}
  2. {'file1.txt': ['B', 'D'], 'file3.txt': ['T'], 'file2.txt': ['G']}
  3. >>> 

标签: python

添加新评论