[英]merge two dictionaries with same key values
我有兩個字典,包含相同的鍵
a = {'a':[3,2,5],
'b':[9,8],
'c':[1,6]}
b = {'b':[7,4],
'c':[10,11]}
當我合並它們時,由於名稱相同,字典b的鍵替換了a的鍵。 這是我正在使用的合並代碼
z = dict(list(a.items()) + list(b.items()))
有什么辦法可以保留所有鍵,我知道字典不能具有相同的鍵名,但是我可以使用以下方法:
a = {'a':[3,2,5],
'b':[9,8],
'c':[1,6],
'b_1':[7,4],
'c_1':[10,11]}
您可以在update()
方法中使用生成器表達式:
a.update((k + '_1' if k in a else k, v) for k, v in b.items())
# {'a': [3, 2, 5], 'b': [9, 8], 'c': [1, 6], 'b_1': [7, 4], 'c_1': [10, 11]}
雖然我認為Usman的答案可能是“正確”的解決方案,但從技術上講,您是這樣要求的:
for key, value in b.items():
if key in a:
a[key + "_1"] = value
else:
a[key] = value
做這樣的事情也許:
a = {'a':[3,2,5],
'b':[9,8],
'c':[1,6]}
b = {'b':[7,4],
'c':[10,11]}
z = {}
for key in a:
if key in b:
z[key + "_1"] = b[key]
z[key] = a[key]
else:
z[key] = a[key]
print(z)
{'a': [3, 2, 5], 'b_1': [7, 4], 'b': [9, 8], 'c_1': [10, 11], 'c': [1, 6]}
檢查b中的鍵是否存在於a中,然后將key_1的key_1值添加到a中,否則將key的b值添加到key中。
a = {'a':[3,2,5],
'b':[9,8],
'c':[1,6]}
b = {'b':[7,4],
'c':[10,11]}
for k in b:
if k in a:
a[k+'_1']=b[k]
else:
a[k]=b[k]
print(a)
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.