Python两个字典键同值相加的⼏种⽅法
两个字典A = {'a': 1, 'b': 2, 'c': 3}, B = {'b': 4, 'c': 6, 'd': 8} 要合并这两个字典,键值同则相加。
两个字典如果不考虑键相同则相加的话,可以使⽤d1.update(d2)可以很⽅便合并,但这样的后⾯的字典到中的值会覆盖字典d1中的值。
>>> A = {'a': 1, 'b': 2}
>>> B = {'a': 8, 'c': 3}
>>> A.update(B)
>>> A
{'a': 8, 'b': 2, 'c': 3}
如果要考虑两个字典,如果考虑键同则值相加的问题,可以使⽤下⾯的⼏种⽅法:
⽅法⼀:
>>> A = {'a': 1, 'b': 2, 'c': 3}字符串切片截取
>>> B = {'b': 4, 'c': 6, 'd': 8}
>>> for key,value in B.items():
...  if key in A:
...    A[key] += value
...  else:
...    A[key] = value
>>> dict(sorted(A.items(), key=lambda d:d[1]))
{'a': 1, 'b': 6, 'd': 8, 'c': 9}
⽅法⼆:
>>> A = {'a': 1, 'b': 2, 'c': 3}
>>> B = {'b': 4, 'c': 6, 'd': 8}
>>> C = {}
>>> for key in list(set(A) | set(B)):
...  (key) (key):
...    C.update({key: A.get(key) + B.get(key)})
...  else:
...    C.update({key: A.get(key) (key)})
>>> C
{'c': 9, 'd': 8, 'a': 1, 'b': 6}
⽅法三:
>>> A = {'a': 1, 'b': 2, 'c': 3}
>>> B = {'b': 4, 'c': 6, 'd': 8}
>>> def dict_union(d1, d2):
...  keys = d1.keys() | d2.keys()
...  temp = {}
...  for key in keys:
...    temp[key] = sum([d.get(key,0) for d in (d1, d2)])
...  return temp
>>> C = dict_union(A, B)
>>> C
{'d': 8, 'a': 1, 'b': 6, 'c': 9}
⽅法四:
>>> A = {'a': 1, 'b': 2, 'c': 3}
>>> B = {'b': 4, 'c': 6, 'd': 8}
>>> C = {}
>>> for key1 in A:
...  for key2 in B:
...    if key1 in B:
...      C[key1] = A[key1] + B[key1]
...    else:
...      C[key1] = A[key1]
...      if key2 not in A:
...        C[key2] = B[key2]
>>> C
{'a': 1, 'd': 8, 'b': 6, 'c': 9}
⽅法五:
>>> A = {'a': 1, 'b': 2, 'c': 3}
>>> B = {'b': 4, 'c': 6, 'd': 8}
>>> C = {}
>>> for key in A:
...  (key):
...    C[key] = A[key] + B[key]
...  else:
...    C[key] = A[key]
>>> for key in B:
.
..  if (key):
...    C[key] = B[key]
>>> C
{'a': 1, 'b': 6, 'c': 9, 'd': 8}
总结
以上就是这篇⽂章的全部内容了,希望本⽂的内容对⼤家的学习或者⼯作具有⼀定的参考学习价值,谢谢⼤家对的⽀持。如果你想了解更多相关内容请查看下⾯相关链接

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。