zoukankan      html  css  js  c++  java
  • python两个_多个字典合并相加

    这只是符合比较正常的需求和场景。

    #一、适用合并两个字典(key不能相同否则会被覆盖),简单,好用。

    1 A = {'a': 11, 'b': 22}
    2 B = {'c': 48, 'd': 13}
    3 #update() 把字典B的键/值对更新到A里
    4 A.update(B)
    5 print(A)

    #二、适用多种场合,多字典存在相同key需要合并相加的场景比较适用。

     1 def sum_dict(a,b):
     2     temp = dict()
     3     # python3,dict_keys类似set; | 并集
     4     for key in a.keys()| b.keys():
          #根据业务需求修改下面方法,
    5 temp[key] = sum([d.get(key, 0) for d in (a, b)]) 6 return temp 7 8 def test(): 9 #python3使用reduce需要先导入 10 from functools import reduce 11 #[a,b,c]列表中的参数可以2个也可以多个,自己尝试。 12 return print(reduce(sum_dict,[a,b,c])) 13 14 a = {'a': 1, 'b': 2, 'c': 3} 15 b = {'a':1,'b':3,'d':4} 16 c = {'g':3,'f':5,'a':10} 17 test()

    三、解包法和第一种效果(限制)一样。

    
    
    1 A = {'a': 11, 'b': 22}
    2 B = {'a': 48, 'b': 13}
    3 C = {**A,**B}
    4 print('A',A)
    5 print('B',B)
    6 print('C',C)
    7 # A {'a': 11, 'b': 22}
    8 # B {'a': 48, 'b': 13}
    9 # C {'a': 48, 'b': 13}
    
    

    四、少量嵌套循环(三层内)for..in...好处是:循环逻辑修改、新增比较方便、简单,坏处是:业务增多会有比较多的for...in...



    A = {'a': 11, 'b': 22}
    B = {'a': 48, 'b': 13}
    C = {**A,**B}
    print('A',A)
    print('B',B)
    print('C',C)
    # A {'a': 11, 'b': 22}
    # B {'a': 48, 'b': 13}
    # C {'a': 48, 'b': 13}
  • 相关阅读:
    [转]十个让你变成糟糕的程序员的行为
    [转]CKEDITOR 使用说明
    [转]惹恼程序员的十件事
    基本权限管理框架配套代码生成器!
    Easy UI 点击TAB 标签 刷新内容
    jQuery.easyui 与 jQuery.Valiedate 验证控件组合使用实例!
    [转]十条不错的编程观点
    dos 改 ip
    今天碰到了几个老同学,哎,,感觉
    猛玩War3中
  • 原文地址:https://www.cnblogs.com/banxiancode/p/12101467.html
Copyright © 2011-2022 走看看