Heim > Backend-Entwicklung > Python-Tutorial > Wie aktualisiere ich verschachtelte Wörterbücher mit variabler Tiefe und behalte dabei bestimmte Werte bei?

Wie aktualisiere ich verschachtelte Wörterbücher mit variabler Tiefe und behalte dabei bestimmte Werte bei?

DDD
Freigeben: 2024-11-08 03:31:01
Original
422 Leute haben es durchsucht

How to Update Nested Dictionaries of Variable Depth While Preserving Specific Values?

Aktualisieren verschachtelter Wörterbücher mit variabler Tiefe

Sie stoßen auf ein Dilemma, wenn Sie versuchen, ein verschachteltes Wörterbuch (Wörterbuch1) mit den Inhalten eines anderen Wörterbuchs zu aktualisieren (Update) unter Beibehaltung bestimmter Werte in der verschachtelten Struktur. Konkret möchten Sie den Schlüssel „level2“ in Wörterbuch1 aktualisieren, ohne den Wert „levelA“ zu überschreiben.

Um dieser Herausforderung zu begegnen, wird eine rekursive Lösung vorgeschlagen. Der folgende Python-Code implementiert diesen Ansatz:

def merge_dicts(dict1, dict2):
    for key in dict2:
        if key in dict1 and isinstance(dict1[key], dict) and isinstance(dict2[key], dict):
            merge_dicts(dict1[key], dict2[key])
        else:
            dict1[key] = dict2[key]
Nach dem Login kopieren

Diese Funktion durchläuft rekursiv beide Wörterbücher und aktualisiert Werte basierend auf den folgenden Regeln:

  • Wenn beide Schlüssel in beiden Wörterbüchern vorhanden sind und vorhanden sind Wörterbücher selbst aufrufen, ruft sich die Funktion rekursiv auf und führt die verschachtelten Wörterbücher zusammen.
  • Andernfalls wird der Wert von dict2 dict1 zugewiesen.

Mit diesem rekursiven Ansatz können Sie verschachtelte Wörterbücher ändern Wörterbücher unterschiedlicher Tiefe unter Beibehaltung spezifischer Werte.

Das obige ist der detaillierte Inhalt vonWie aktualisiere ich verschachtelte Wörterbücher mit variabler Tiefe und behalte dabei bestimmte Werte bei?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Quelle:php.cn
Erklärung dieser Website
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage