Python中两个字典键相同值相加的几种方法详解

Python中两个字典键相同值相加是一个常见的操作,有几种方法可以实现。

1. 使用for循环

使用for循环可以遍历两个字典,如果键相同,就将值相加,并将结果存储到新的字典中。代码示例如下:

d1 = {'a': 1, 'b': 2, 'c': 3}
d2 = {'a': 4, 'b': 5, 'd': 6}
d3 = {}

for k, v in d1.items():
    if k in d2:
        d3[k] = v + d2[k]
    else:
        d3[k] = v

for k, v in d2.items():
    if k not in d1:
        d3[k] = v

print(d3)
# {'a': 5, 'b': 7, 'c': 3, 'd': 6}

2. 使用字典解析

使用字典解析可以更加简洁的实现两个字典键相同值相加的操作,代码示例如下:

d1 = {'a': 1, 'b': 2, 'c': 3}
d2 = {'a': 4, 'b': 5, 'd': 6}

d3 = {k: v + d2[k] for k, v in d1.items() if k in d2}

print(d3)
# {'a': 5, 'b': 7}

3. 使用collections.Counter

使用collections.Counter可以更加简便的实现两个字典键相同值相加的操作,代码示例如下:

from collections import Counter

d1 = {'a': 1, 'b': 2, 'c': 3}
d2 = {'a': 4, 'b': 5, 'd': 6}

d3 = Counter(d1) + Counter(d2)

print(d3)
# Counter({'a': 5, 'b': 7, 'd': 6, 'c': 3})

4. 使用zip()

使用zip()函数可以更加简洁的实现两个字典键相同值相加的操作,代码示例如下:

d1 = {'a': 1, 'b': 2, 'c': 3}
d2 = {'a': 4, 'b': 5, 'd': 6}

d3 = {k: v + d2[k] for k, v in zip(d1, d2) if k in d2}

print(d3)
# {'a': 5, 'b': 7}

:以上就是Python中两个字典键相同值相加的几种方法,使用for循环可以遍历两个字典,如果键相同,就将值相加,并将结果存储到新的字典中;使用字典解析可以更加简洁的实现两个字典键相同值相加的操作;使用collections.Counter可以更加简便的实现两个字典键相同值相加的操作;使用zip()函数可以更加简洁的实现两个字典键相同值相加的操作。

本文链接:http://task.lmcjl.com/news/9165.html

展开阅读全文