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

Python 如何根据密钥是否已存在来更新词典?,python,dictionary,key,Python,Dictionary,Key,我想更新我的字典。如果该键已经存在于字典中,那么我想(从另一个字典)向该键添加新值。如果该键在字典中不存在,那么我想添加一个新键(来自另一个字典) 换句话说,我只希望更新的键具有新的添加(而不是重写)值(如果键在两个字典中都存在)和新键(如果键在新字典中存在) 这是我目前拥有的词典的一个例子: global_dict = {'abc': 123, 'def': 456} new_dict={'def':789, 'ghi': hello} for key,val i

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

换句话说,我只希望更新的键具有新的添加(而不是重写)值(如果键在两个字典中都存在)和新键(如果键在新字典中存在)

这是我目前拥有的词典的一个例子:

     global_dict = {'abc': 123, 'def': 456}
     new_dict={'def':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)
我想要的是全球宣言最终看起来像这样:

     global_dict={'abc':123, 'def'=[456, 789], 'ghi'=hello}
这是我目前拥有的代码:

     global_dict = {'abc': 123, 'def': 456}
     new_dict={'def':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)

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

key
不在
global\u dict
中时,您会用整个
new\u dict
更新
global\u dict
,因此最终会覆盖为匹配的键创建的子列表。您应该只更新不在
global\u dict
中的键的值

更改:

global_dict.update(new_dictionary)
致:


当你说它不起作用时,你能更准确地说明你的意思吗?实际上发生了什么?你只想在某些时候列出清单?这可能会以不必要的方式使事情复杂化。@DavidZ,我看不到new_dict中新的唯一键。@stephernauch,我一直想要列表,但我只想要一个更新的列表,其中包含新值(如果两个字典中都有键)和新键(如果新字典中有键)但是您的示例并不总是有列表。我只是尝试了一下,但是新字典中的新键没有添加到全局字典中。它对我来说非常有效,因为
global\u dict
变成了
{'abc':123,'def':[456789],'ghi':'hello'}
。如果新代码对您不起作用,您能给我看一下吗?不在
global_dict
中但仅在
dict_2014
中的密钥没有显示。您想要什么样的内容描述?这是字符串和浮点数的混合。代码看起来是正确的。在您的实际跑步中,
global_dict
dict_2014
的内容是什么?运行此代码后,
dict_2014
中的哪些键没有显示在
global_dict
中?现在可以使用了!我以前的代码中有一个bug!非常感谢。