相关疑难解决方法(0)

两个python词典的递归diff(键和值)

所以我有一个python字典,调用它d1,以及稍后的一个字典版本,调用它d2.我想找到d1和之间的所有变化d2.换句话说,添加,删除或更改的所有内容.棘手的一点是值可以是整数,字符串,列表或字母,因此它需要是递归的.这是我到目前为止:

def dd(d1, d2, ctx=""):
    print "Changes in " + ctx
    for k in d1:
        if k not in d2:
            print k + " removed from d2"
    for k in d2:
        if k not in d1:
            print k + " added in d2"
            continue
        if d2[k] != d1[k]:
            if type(d2[k]) not in (dict, list):
                print k + " changed in d2 to " + str(d2[k])
            else:
                if type(d1[k]) != type(d2[k]):
                    print k …
Run Code Online (Sandbox Code Playgroud)

python recursion diff dictionary data-structures

31
推荐指数
6
解决办法
3万
查看次数

标签 统计

data-structures ×1

dictionary ×1

diff ×1

python ×1

recursion ×1