Python:合并两个字典

标签 python python-3.x merge elementary

这是我当前的代码:

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/

相关文章:

python - 实现f字符串时如何捕获SyntaxError-使用过时的python时

python - 打开 CSV 目录中的所有文件并读取每一行 Python

python - 使用 del() 删除列表中的多个元素

python3-qt4 在 QApplication 构造函数中丢弃 unicode 字符串中的非 ascii 字符

python - 我想从 CSV 文件中获取数据并放入两个不同的数组变量中

c# - 合并两个字典 Dictionary<string, Dictionary<string, Object>>

python - 让 jupyter nbconvert 在每个单元完成后将输出写入笔记本,而不是等到执行结束

python - 提高 elasticsearch-py 扫描的速度

mercurial - 如何使用 Mercurial 进行基于变更集的 merge ,而不是基于文件的 merge ?

r - 当接收到 left_join 和 merge 的错误时,如何将数据帧与空间数据帧组合?