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

标签 python dictionary duplicates

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

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

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

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

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

任何帮助将不胜感激。

最佳答案

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

关于Python - 查找字符串列表中不重复的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21298792/

相关文章:

Python:使用简单的聊天服务器/客户端进行 2 人游戏

python - Matplotlib 中 Poly3DCollection 的光栅化

javascript - 动态属性作为关键 VS Javascript 中的对象列表 - 哪一个会更高效

json - 将文本转换为 python 列表

streaming - 数据流中的近似重复检测

python - Pandas - 迭代时重复行

python - 如何通过登录用户向问题模型添加选择

python - 实现列比较时的SettingWithCopyWarning

JavaScript:如果键不存在则写入字典

java - 用于调试的 Jar 合并与 android 抛出重复条目?