Python:合并两个字典

Luk*_*zko 5 python merge python-3.x

这是我当前的代码:

A = {1 : "one", 2 : "two"}
B = {2 : "dva", 3 : "three"}
d = {}

for key in set(list(A.keys()) + list(B.keys())):
    try:
        d.setdefault(key,[]).append(A[key])
    except KeyError:
        pass

    try:
        d.setdefault(key,[]).append(B[key])
    except KeyError:
        pass
print(d)
Run Code Online (Sandbox Code Playgroud)

这是我目前得到的结果:

{1: ['one'], 2: ['two', 'dva'], 3: ['three']}
Run Code Online (Sandbox Code Playgroud)

我需要做什么才能得到如下所示的结果?

{1 : "one", 2 : ["two", "dva"], 3 : "three"}
Run Code Online (Sandbox Code Playgroud)

blo*_*gon 3

dict您可以首先使用运算符创建一个新的**

new_dict = {**A, **B}
>>> new_dict
{1: 'one', 2: 'dva', 3: 'three'}
Run Code Online (Sandbox Code Playgroud)

然后forset键的交集进行循环:

>>> for dupe_key in set(A) & set(B):
...     new_dict[dupe_key] = [A[dupe_key], B[dupe_key]]
...
>>> new_dict
{1: 'one', 2: ['two', 'dva'], 3: 'three'}
Run Code Online (Sandbox Code Playgroud)