2014-01-23 145 views
1

我在查找字典中的非重複值時遇到困難。Python - 查找非重複字符串列表中的字符

my_dict = {(1, 1):'2345', (1, 2):'234', (1, 3):'5678', (1, 4):'2387'} 

我需要的是能夠找出是,什麼角色是不是重複,什麼關鍵它是一個值。 本字典我需要返回以下:

>>> {(1, 3):'6'} 

6是沒有出現在任何其他值的唯一值,所以將需要被返回的鍵((1,3) )和非重複(6)。

任何幫助將不勝感激。

+1

爲什麼這麼說呢6是不出現其他地方唯一的價值? 1呢? – DSM

+0

對不起,這是一個錯誤的,1不應該出現在(1,1) – Ritashugisha

回答

2
my_dict = {(1, 1):'2345', (1, 2):'234', (1, 3):'5678', (1, 4):'2387'} 

from collections import defaultdict 
d = defaultdict(list) 
for k, v in my_dict.items(): 
    for char in v: 
     d[char].append(k) 
print {v[0]:k for k, v in d.items() if len(v) == 1} 

如果你想隻字典

d = {} 
for k, v in my_dict.items(): 
    for char in v: 
     d.setdefault(char, []).append(k) 
print {v[0]:k for k, v in d.items() if len(v) == 1} 

輸出做

{(1, 3): '6'} 
相關問題