📅  最后修改于: 2023-12-03 14:50:12.994000             🧑  作者: Mango
在 Python 中,有时需要找出具有相同值的键的字典。这可以通过使用列表推导式和 lambda 函数来实现。
以下是一个简单的示例:
dict_1 = {'a': 1, 'b': 2, 'c': 3, 'd': 2}
result = {}
for key, value in dict_1.items():
result.setdefault(value, []).append(key)
print(result)
输出结果将是一个包含所有相同值的字典:
{1: ['a'], 2: ['b', 'd'], 3: ['c']}
可以看到,该代码创建了一个名为“result”的新字典,并遍历原来的字典。在每个键值对中,它使用 setdefault() 方法将当前值添加到结果字典中,并将相应的键添加到值的列表中。
另一种方法是使用 defaultdict 类型,它自动在新键上创建一个默认值。可以使用此类来使代码更简洁:
from collections import defaultdict
dict_2 = {'a': 1, 'b': 2, 'c': 3, 'd': 2}
result = defaultdict(list)
for key, value in dict_2.items():
result[value].append(key)
print(result)
输出结果将是相同的:
defaultdict(<class 'list'>, {1: ['a'], 2: ['b', 'd'], 3: ['c']})
在本示例中,代码使用 defaultdict 类型来创建名为“result”的字典,并使用类似的方法添加键和值。
总结:
以上介绍了如何使用 Python 中的列表推导式和 lambda 函数来列出具有相同值的字典。也介绍了如何使用 defaultdict 类型来使代码更简洁。这些方法可以帮助您更轻松地处理字典,并快速找出具有相同值的键。