如何合并2个python词典?

时间:2017-04-30 03:26:00

标签: python dictionary

假设有2个词典:

A = {'a':1, 'b':2, 'c':3}
B = {'c':2, 'd':2, 'e':4}

如何将它们合并在一起以获得:

C = {'a':1, 'b':2, 'c':5, 'd':2, 'e':4}

我知道A.update(B)会给我一个合并的字典但是我在A中想要'c'的值会被B中'c'所持有的值覆盖而不是被添加。

3 个答案:

答案 0 :(得分:1)

A = {'a':1, 'b':2, 'c':3}
B = {'c':2, 'd':2, 'e':4}
C = {}

for key in A:
    C[key] = A[key] + B.get(key,0)

for key in B:
    try:
        C[key]
    except:
        C[key] = B[key]

print(C)

因此,您将获得所需的组合词典。

答案 1 :(得分:1)

也许最简单的方法是使用Counter

from collections import Counter

A = {'a':1,'b':2,'c':3} 
B = {'c':2,'d':2,'e':4}

C = dict(Counter(A) + Counter(B))

print(C)
# {'a': 1, 'b': 2, 'c': 5, 'd': 2, 'e': 4}

答案 2 :(得分:-1)

您可以执行以下操作

A = {'a':1,'b':2,'c':3}
B = {'c':2,'d':2,'e':4}
C = {}
keys_from_a = A.keys()
keys_from_b = B.keys()

total_keys = keys_from_a + keys_from_b
sort(total_keys)

for k in total_keys:
     if A[k]:
          C[k] = A[k]
     elif B[k]:
          C[k] = B[k]
     else:
          continue
print(c)
相关问题