我有一本字典,其中一些值是重复的。 我想打印每个重复项的键:值。 因此,使用以下字典:
animal = {"cat" : "23", "dog" : "21", "lion" : "23"}
我要打印:
cat: 23
lion: 23
我在下面有此代码,但是仅打印后面的代码:
animal = {"cat" : "23", "dog" : "21", "lion" : "23"}
duplicates = []
unique = []
for x in animal:
if animal[x] not in unique:
unique.append(animal[x])
else:
duplicates.append(x + animal[x])
print(duplicates)
答案 0 :(得分:3)
我建议您重新考虑您的解决方案。您可以通过将值映射到键列表来反转字典。
dupe = {}
for k, v in animal.items():
dupe.setdefault(v, []).append(k)
下一步,过滤字典以仅保留具有多个值的那些键。
dupe = {k : dupe[k] for k in dupe if len(dupe[k]) > 1}
print(dupe)
# {'23': ['cat', 'lion']}
此解决方案将从原始文档中找到所有重复的值及其键。