LINUX.ORG.RU

История изменений

Исправление 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