История изменений
Исправление rtxtxtrx, (текущая версия) :
я думаю лучше создать новый словарь:
def dickt_replace(d, s, r):
if isinstance(d, dict):
return {k: r if k == s else dickt_replace(v, s, r) for k, v in d.items()}
elif isinstance(d, list):
return [dickt_replace(item, s, r) for item in d]
else:
return d
In [4]: dickt_replace({'spam': [{'foo': 'bar'}]}, 'foo', 'baz')
Out[4]: {'spam': [{'foo': 'baz'}]}
Исходная версия rtxtxtrx, :
я думаю лучше создать новый словарь:
def dickt_replace(d, s, r):
if isinstance(d, dict):
return {k: r if k == s else dickt_replace(v, s, r) for k, v in d.items()}
elif isinstance(d, list):
return [dickt_replace(item, s, r) for item in d]
else:
return d