这是我当前的代码:
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)
这是我目前得到的结果:{1: ['one'], 2: ['two', 'dva'], 3: ['three']}
我该怎么做才能得到如下所示的结果?{1 : "one", 2 : ["two", "dva"], 3 : "three"}
最佳答案
您可以先制作一个新的 dict
使用 **
运算符(operator):
new_dict = {**A, **B}
>>> new_dict
{1: 'one', 2: 'dva', 3: 'three'}
然后是 for
遍历 set
键的交集:>>> 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'}
关于Python:合并两个字典,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66036998/