在 Python 中查找字典中具有重复值的键
pythonserver side programmingprogramming更新于 2025/10/11 13:32:17
在处理字典时,我们可能会遇到字典中有重复值的情况,而键显然保持唯一。在本文中,我们将了解如何实现这一点。
交换键和值
我们将键与字典的值交换,然后继续附加与给定键关联的值。这样,重复的值就会合并在一起,我们可以在生成的新字典中看到它们。
示例
dictA = {'Sun': 5, 'Mon': 3, 'Tue': 5, 'Wed': 3}
print("Given Dictionary :", dictA)
k_v_exchanged = {}
for key, value in dictA.items():
if value not in k_v_exchanged:
k_v_exchanged[value] = [key]
else:
k_v_exchanged[value].append(key)
# 结果
print("New Dictionary:", k_v_exchanged)
输出
运行上述代码得到以下结果 −
Given Dictionary : {'Sun': 5, 'Mon': 3, 'Tue': 5, 'Wed': 3}
New Dictionary: {5: ['Sun', 'Tue'], 3: ['Mon', 'Wed']}
使用 set
我们在这里采用类似的方法。在这里,我们还使用 set 函数从现有字典创建一个新字典,并添加具有重复值的键。最后,我们过滤掉长度大于 1 的值并将其标记为重复。
示例
dictA = {'Sun': 5, 'Mon': 3, 'Tue': 5, 'Wed': 4}
print("Given Dictionary :", dictA)
dictB = {}
for key, value in dictA.items():
dictB.setdefault(value, set()).add(key)
res = filter(lambda x: len(x) >1, dictB.values())
# 结果
print("New Dictionary:",list(res))
输出
运行上述代码得到以下结果 −
Given Dictionary : {'Sun': 5, 'Mon': 3, 'Tue': 5, 'Wed': 4}
New Dictionary: [{'Tue', 'Sun'}]
相关文章
有用资源
python 参考教程 - 该教程包含有关 python 的更多信息:https://www.cainiaomax.com/python/

