📅  最后修改于: 2023-12-03 14:53:35.774000             🧑  作者: Mango
在Python中,我们可以使用字典(dictionary)来存储具有相同值的合并键(key)。下面是一些实现的方法:
# 定义函数用于将值相同的键合并
def merge_dicts(dicts):
result = {}
for dictionary in dicts:
for key, value in dictionary.items():
result.setdefault(key, []).append(value)
return result
# 需要合并的字典列表
dict_list = [
{"a": 1, "b": 2, "c": 3},
{"a": 3, "b": 2, "d": 4},
{"b": 3, "d": 5}
]
# 合并字典
merged_dict = merge_dicts(dict_list)
print(merged_dict)
# 输出: {'a': [1, 3], 'b': [2, 2, 3], 'c': [3], 'd': [4, 5]}
from collections import defaultdict
# 定义函数用于将值相同的键合并
def merge_dicts(dicts):
result = defaultdict(list)
for dictionary in dicts:
for key, value in dictionary.items():
result[key].append(value)
return result
# 需要合并的字典列表
dict_list = [
{"a": 1, "b": 2, "c": 3},
{"a": 3, "b": 2, "d": 4},
{"b": 3, "d": 5}
]
# 合并字典
merged_dict = merge_dicts(dict_list)
print(merged_dict)
# 输出: defaultdict(<class 'list'>, {'a': [1, 3], 'b': [2, 2, 3], 'c': [3], 'd': [4, 5]})
# 定义函数用于将值相同的键合并
def merge_dicts(dicts):
keys = set().union(*dicts)
result = {x: [dic[x] for dic in dicts if x in dic]
for x in keys}
return result
# 需要合并的字典列表
dict_list = [
{"a": 1, "b": 2, "c": 3},
{"a": 3, "b": 2, "d": 4},
{"b": 3, "d": 5}
]
# 合并字典
merged_dict = merge_dicts(dict_list)
print(merged_dict)
# 输出: {'a': [1, 3], 'b': [2, 2, 3], 'c': [3], 'd': [4, 5]}
以上是三种不同的方法来实现将具有相同值的字典进行合并。
我们可以使用setdefault()方法来创建一个空列表,并把所有的值添加到这个列表里;还可以使用defaultdict()方法来生成一个默认value为list的字典;也可以使用set()方法来生成一个key的集合,并把所有key对应的值合并到一个list里。
总之,Python相当灵活,因此可以通过各种方法轻松地解决不同的问题。