如何根据密钥是否已经存在来更新字典?

时间:2018-08-31 02:56:28

标签: python dictionary key

我想更新我的字典。如果密钥已经存在于字典中,那么我想向该密钥添加新值(来自另一个字典)。如果该键在字典中不存在,那么我想添加一个新键(来自另一个字典)。

换句话说,我只想要更新的键具有新添加的(不覆盖)值(如果两个字典中都存在键)和新键(如果该键在新词典中存在)

这是我目前拥有的字典的一个示例:

     global_dict = {'abc': 123, 'def': 456}
     new_dict={'def':789, 'ghi': hello}

我想要的是全局字典,最终看起来像这样:

     global_dict={'abc':123, 'def'=[456, 789], 'ghi'=hello}

这是我当前拥有的代码:

    for key,val in new_dict.items():
       if key in global_dict:
          global_dict[key]=[global_dict[key],val]
       else:
          global_dict.update(new_dictionary)

这当前不起作用,我不确定我的解决方案出了什么问题。有提示吗?

1 个答案:

答案 0 :(得分:3)

global_dict中还没有new_dict时,您会用整个key更新global_dict,因此最终会覆盖为执行以下操作的键创建的子列表比赛。您应该只更新global_dict中尚未存在的密钥的值。

更改:

global_dict.update(new_dictionary)

收件人:

global_dict[key] = val