所以我有一个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) 我有两本词典
a = {'home': {'name': 'Team1', 'score': 0}, 'away': {'name': 'Team2', 'score': 0}}
b = {'home': {'name': 'Team1', 'score': 2}, 'away': {'name': 'Team2', 'score': 0}}
Run Code Online (Sandbox Code Playgroud)
密钥永远不会改变,但我想让['home'] ['score']改变
有什么简单的方法吗?