在stackoverflow中看到的這個問題。現有兩個字典,使用update方法數據結構
x = {'a':1, 'b': 2} y = {'b':10, 'c': 11} z = x.update(y) print(z) print(x)
結果z倒是空,x卻被改變了。ide
None {'a': 1, 'b': 10, 'c': 11}
字典這種數據結構我常常用到,我們今天就嘗試幾種字典合併的方法(字典結果僅限一層)。code
方法1
入門Python的人誰都能想到的方法(我也是想到的這個辦法)it
result = dict(x) #檢測發現result和x不指向同一個地址 print(id(result)==id(x)) for k,v in y.items(): if k in result: result[k] = result[k]+v else: result[k] = v print(result) False {'a': 1, 'b': 12, 'c': 11}
方法2
這個方法簡潔清奇,印象深入。入門
#新建一個字典,使用**傳遞key-value對 x = {'a':1, 'b': 2} y = {'b':10, 'c': 11} z = {**x, **y} print(z) {'a': 1, 'b': 10, 'c': 11}