字典合并且累加值
场景:
两个字典,key有一部分相同但value不同。现要把两个字典合并,相同key的值累加。
代码:
# 目的:将字典a中元素累加到字典n中
In [12]: a = {'b': 1, 'c': 2, 'd': 3}
In [13]: n = {'a':1, 'd':2}
# 常规写法
In [14]: for i in a:
...: if i not in n:
...: n[i] = a[i]
...: else:
...: n[i] += a[i]
...: print(n)
{'a': 1, 'd': 5, 'b': 1, 'c': 2}
# 推荐写法1
In [18]: for i in a:
...: n.setdefault(i, 0)
...: n[i] += a[i]
...: print(n)
...:
...:
{'a': 1, 'd': 5, 'b': 1, 'c': 2}
# 推荐写法2
In [21]: for i in a:
...: n[i] = n.get(i, 0) + a[i]
...: print(n)
...:
...:
{'a': 1, 'd': 5, 'b': 1, 'c': 2}