중첩 사전으로 작업할 때 다른 레벨에 영향을 주지 않고 특정 키를 업데이트해야 하는 경우가 많습니다. 그러나 Python의 표준 업데이트 방법은 동일한 수준의 모든 키를 덮어쓰므로 이 목표를 달성하기 어렵습니다.
재귀적 접근 방식을 사용하면 이 문제를 효과적으로 해결할 수 있습니다. 사전을 재귀적으로 순회함으로써 기존 구조를 유지하면서 적절한 깊이에서 키를 식별하고 업데이트할 수 있습니다.
예를 들어 다음 재귀 함수를 사용하면 levelA를 덮어쓰지 않고 업데이트 내용을 Dictionary1로 업데이트할 수 있습니다.
def update(d, u): for k, v in u.items(): if isinstance(v, dict): d[k] = update(d.get(k, {}), v) else: d[k] = v return d
이 함수에서는 v가 사전인지 확인하고 적절한 하위 사전으로 update를 재귀적으로 호출합니다. v가 사전이 아닌 경우 d의 해당 키를 업데이트하면 됩니다. 이렇게 하면 중간 키를 덮어쓰지 않게 됩니다.
다음 예를 고려하세요.
dictionary1 = { "level1": { "level2": {"levelA": 0, "levelB": 1} } } update = { "level1": { "level2": {"levelB": 10} } } updated_dictionary = update(dictionary1, update) print(updated_dictionary) # Output: # {'level1': {'level2': {'levelA': 0, 'levelB': 10}}}
보시다시피 levelA는 업데이트된 사전에 보존됩니다. levelB 값이 포함된 업데이트에도 불구하고. 이는 재귀적 접근 방식의 효율성을 보여줍니다.
위 내용은 중간 키를 덮어쓰지 않고 Python에서 중첩 사전을 업데이트하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!