如何將多個字典合併?

在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}
相關文章
相關標籤/搜索