dict2 = {"name":"martin","sex":"male","age":"97","address":"blablabla"}
dict1 = {"name":"falak", "sex":"female"}
我想创建一个基于dict1和dict2的第三个字典。 dict3将具有dict2的所有值。但是所有这些密钥都将被替换为dict1中存在的密钥。这是最终的dict3
dict3 = {"name":"falak","sex":"female","age":"97","address":"blablabla"}
我可以使用多个if语句,但希望有一种更聪明的方法。可以请有人指导我。
答案 0 :(得分:11)
你试过了吗?
dict3 = dict(dict2, **dict1)
或者:
dict3 = dict2.copy()
dict3.update(dict1)
答案 1 :(得分:1)
import copy
dict3 = copy.copy(dict2)
dict3.update(dict1)
答案 2 :(得分:0)
<强>更新([其他])强>
- 使用其他键中的键/值对更新字典,覆盖现有键。
- 返回无。
- update()接受另一个字典对象或一对键/值对的迭代(作为元组或长度为2的其他迭代)。如果指定了关键字参数,则使用这些键/值对更新字典:d.update(red = 1,blue = 2)。
- 版本2.4中已更改:允许参数为键/值对的可迭代,并允许使用关键字参数。
所以:
dict1.update(dict2)
答案 3 :(得分:0)
首先,从d1添加d2中没有键的项目。来自d1的所有其他键都在d2中。
然后,你添加来自d2的所有键,如果d1中没有这样的键,则来自d2的值,如果d1中存在键,则来自d1的值。
dict2 = {"name":"martin","sex":"male","age":"97","address":"blablabla"}
dict1 = {"name":"falak", "sex":"female"}
dic = dict()
for key, val in dict1.items():
if key not in dict2.keys():
dic[key] = val
for key, val in dict2.items():
if key not in dict1.keys():
dic[key] = val
else:
dic[key] = dict1[key]