相关疑难解决方法(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万
查看次数

python dict更新差异

python是否具有任何内置功能,可以通知在dict更新时更改了哪些字典元素?例如,我正在寻找这样的功能:

>>> a = {'a':'hamburger', 'b':'fries', 'c':'coke'}
>>> b = {'b':'fries', 'c':'pepsi', 'd':'ice cream'}
>>> a.diff(b)
{'c':'pepsi', 'd':'ice cream'}
>>> a.update(b)
>>> a
{'a':'hamburger', 'b':'fries', 'c':'pepsi', 'd':'ice cream'}
Run Code Online (Sandbox Code Playgroud)

我希望得到一个更改值的字典,如a.diff(b)的结果所示

python diff dictionary

6
推荐指数
2
解决办法
4910
查看次数

标签 统计

dictionary ×2

diff ×2

python ×2

data-structures ×1

recursion ×1