如果我有以下两个词:
dict1 = {'k1':'v1', 'k2':'v2', 'k3':'v3'}
dict2 = {'k1':'v4', 'k4':'v5', 'k5':'v6'}
是否可以使用dict 2更新dict1,但只能使用单个键,在本例中为'k1'
,以便结果如下:
dict1 = {'k1':'v4', 'k2':v2', 'k3':'v3'}
谢谢!
答案 0 :(得分:2)
只需使用键访问每个字典,然后将dict1键的值重新分配给dict2键的值:
dict1 = {'k1':'v1', 'k2':'v2', 'k3':'v3'}
dict2 = {'k1':'v4', 'k4':'v5', 'k5':'v6'}
dict1["k1"] = dict2["k1"]
dict1
{'k3': 'v3', 'k2': 'v2', 'k1': 'v4'}
解决你的意见:
如果您使用dict1.update(dict2)
,则会将key/values
中的所有新dict2
对添加到dict1
,或将dict1
中任何现有密钥的值更改为dict2
中相应键的值。
输出结果为:
{'k3': 'v3', 'k2': 'v2', 'k1': 'v4', 'k5': 'v6', 'k4': 'v5'}
正如jon Clements建议的那样,如果dict2没有相应的密钥,dict.get
使用默认值dict1["k1"]
将保留dict1密钥的原始值并避免使用keyError
:
dict1['k1'] = dict2.get("k1",dict1["k1"])
根据abarnet的评论,我们可以在访问之前检查两个密钥是否存在:
if "k1" in dic1 and "k1" in dict2:
dict1["k1"] = dict2["k1"]