Python - 查找不重复的字符串列表中的字符

时间:2014-01-23 03:31:12

标签: python dictionary duplicates

我在字典中找到非重复值时遇到了困难。

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

我需要的是能够找出的是,什么字符不是重复的,它是什么键值。 对于这本词典,我需要返回以下内容:

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

6是唯一没有出现在任何其他值中的值,因此我需要返回键((1,3))和非重复(6)。

非常感谢任何帮助。

1 个答案:

答案 0 :(得分: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'}