我有两本词典
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']改变
有什么简单的方法吗?
作为下意识的初步反应:
a = {'home': {'name': 'Team1', 'score': 0}, 'away': {'name': 'Team2', 'score': 0}}
b = {'home': {'name': 'Team1', 'score': 2}, 'away': {'name': 'Team2', 'score': 0}}
def valchange(d1, d2, parent=''):
changes=[]
for k in d1.keys():
if type(d1[k])==type({}):
changes.extend(valchange(d1[k], d2[k], k))
else:
if d1[k]!=d2[k]:
if parent=='':
changes.append(k + ' has changed ')
else:
changes.append(parent + '.' + k + ' has changed')
return changes
print valchange(a,b)
>>>
['home.score has changed']
Run Code Online (Sandbox Code Playgroud)