python如何合并字典键值

python如何合并字典键值

作者:Joshua Lee发布时间:2026-01-05阅读时长:0 分钟阅读次数:6

用户关注问题

Q
如何在Python中将多个字典的键值合并为一个字典?

我有多个字典,想要合并它们的键值,确保不会丢失数据,有什么方法可以实现吗?

A

使用dict.update()和字典解析合并多个字典

可以使用字典的update()方法依次合并字典,或者使用字典解析结合字典解包(Python 3.5及以上)来合并多个字典。若键存在相同,则后面的字典会覆盖前面的键值。示例方法包括:

  1. 使用update()方法逐个合并;
  2. 利用{dict1, dict2, ...}语法合并多个字典。
Q
如何合并两个字典中相同键对应的数值(如相加)?

如果两个字典中存在相同的键,我想把它们对应的值进行相加而不是覆盖,该怎么操作?

A

通过循环遍历和计算实现相同键值的合并

可以遍历两个字典的键,对于相同的键,将对应的值相加,放入新字典中。代码示例:

from collections import Counter

dict1 = {'a': 1, 'b': 2}
dict2 = {'b': 3, 'c': 4}
result = dict(Counter(dict1) + Counter(dict2))

这样可以有效合并并求和相同键的值。

Q
如何合并字典时将相同键的值合并成列表?

我希望把多个字典中相同的键对应的值合并成一个列表,方便后续处理,应该如何实现?

A

使用collections.defaultdict收集相同键的值列表

可以使用defaultdict(list)来遍历所有字典,将相同键的值追加到列表中,示例代码如下:

from collections import defaultdict

dicts = [{'a': 1, 'b': 2}, {'b': 3, 'a': 4}, {'c': 5}]
merged = defaultdict(list)
for d in dicts:
    for key, value in d.items():
        merged[key].append(value)

merged_dict = dict(merged)

最终结果中,每个键对应的值都会是一个包含所有原始字典中该键值的列表。