python中比较两个字典的差异

a = {
    "x":1,
    "y":2,
    "z":3,
    "h":{"a":1,"b":2,"c":3},
    "k":{"a":1,"b":3}
}
b = {
    "x":1,
    "w":11,
    "z":12
}
# b = {
#     "x":1,
#     "y":5,
#     "z":3,
#     "h":{"a":1,"b":2,"c":13}
# }

print("两个字典共有的key为:")
c = a.keys() & b.keys()
print(c)

print("a字典中有,b字典中没有的key为:")
ab =a.keys() - b.keys()
print(ab)

print("b字典中有,a字典中没有的key为:")
ba = b.keys() - a.keys()
print(ba)

print("两个字典不一样的key为:")
d = set(list(a.keys() - b.keys()) + list(b.keys() - a.keys()))
print(d)

for i in list(c):
    if a[i] != b[i]:
        print("字典中不同的元素为:a["+ i +"]=" + str(a[i]) + " <=> b["+ i +"]=" + str(b[i]))

# wz = ""
def Checkloop(dict1,dict2):
    wz = ""
    for key in dict2:
        if key in dict1:
            values1 = dict1[key]
        else:
            values1 = ''
            ret = 0
        values2 = dict2[key]
        if type(values2) == dict and type(values1) == dict:
            wz += key
            Checkloop(values1,values2)
        else:
            if values1 != values2:
                print("字典中%s的%s值不一样,分别为:%s,%s"%(wz,key,values1,values2))

Checkloop(a,b)

  • 3
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

自学开源爱好者

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值