📅  最后修改于: 2023-12-03 14:45:55.092000             🧑  作者: Mango
在Python中,可以使用字典(dictionary)存储键值对的数据类型。一些情况下,我们需要连接所有具有相似值的键。这篇文章将会介绍一种简单有效的方法。
我们可以使用 defaultdict 类型和字典解析器来连接所有具有相似值的键。defaultdict 可以创建一个以默认值为初始值的字典,而字典解析器可以将两个或更多的字典合并到一个字典中。
以下是连接所有具有相似值的键的代码。
from collections import defaultdict
def merge_dicts(dicts):
# defaultdict的default_factory将返回一个list
merged_dict = defaultdict(list)
# 合并所有字典中相同键的值
for d in dicts:
for k, v in d.items():
merged_dict[k].append(v)
# 返回合并后的字典
return {k: v for k, v in merged_dict.items() if len(v) > 1}
以上函数接受一个包含多个字典的列表,并返回一个包含所有具有相似值的键的字典。
我们可以使用以下示例来测试函数。
dict1 = {'a': 1, 'b': 2, 'c': 3}
dict2 = {'a': 2, 'b': 2, 'd': 4}
dict3 = {'a': 3, 'b': 3, 'e': 5}
merged_dict = merge_dicts([dict1, dict2, dict3])
print(merged_dict)
输出:
{'a': [1, 2, 3], 'b': [2, 2, 3]}
该示例将3个字典传递给 merge_dicts 函数,并返回包含所有具有相似值的键的字典。
使用 defaultdict 和字典解析器可以轻松连接所有具有相似值的键。默认情况下, defaultdict 默认值为一个空列表( []) 。这意味着我们可以直接使用 append() 方法将键的值添加到列表中。
建议将上述代码片段保存在工具箱中,以便在需要时轻松重用。