📜  列出具有相同值的 dict python - Python (1)

📅  最后修改于: 2023-12-03 14:50:12.994000             🧑  作者: Mango

列出具有相同值的 dict python - Python

在 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 类型来使代码更简洁。这些方法可以帮助您更轻松地处理字典,并快速找出具有相同值的键。