问题介绍

有时候我们需要将两个字典进行合并,我们需要相同的键的值,合并成一个列表。

代码

dic_a = {"key1":1,"key5":2}

dic_b = {"key1":3,"key4":4}
print("合并前的字典1是{}".format(dic_a))
print("合并前的字典2是{}".format(dic_b))
# 实现的目标是 "key2":[2,3]
result_dic = {}
'''
核心思路:
        1:遍历字典1和字典2的每一个键
        2:如果两个字典的键是一样的,就给新字典的该键赋值为空列表
            然后空列表依次添加字典1和字典2 的值,然后将最后的值赋值给原字典
        3:如果两个字典的键不同,则分别将键值对加到新列表中
'''
for k,v in dic_a.items():
    for m,n in dic_b.items():
        if k == m:
            result_dic[k] = []
            result_dic[k].append(dic_a[k])
            result_dic[k].append(dic_b[k])
            dic_a[k] = result_dic[k]
            dic_b[k] = result_dic[k]
        else:
            result_dic[k] = dic_a[k]
            result_dic[m] = dic_b[m]
    # if k in dic_b.keys():
        

print("合并后的字典是{}.".format(result_dic))

结果

将python字典中相同键的值合并成列表_赋值