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}


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM