Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich rekursiv auf Werte aus einem verschachtelten Wörterbuch zugreifen und diese drucken?
Rekursiver Zugriff auf verschachtelte Wörterbuchwerte
Bei der Arbeit mit verschachtelten Wörterbüchern ist es häufig erforderlich, alle Schlüssel-Wert-Paare zu durchlaufen spezifische Daten extrahieren. Dieses Problem tritt auf, wenn versucht wird, ein Wörterbuch zu durchlaufen und alle nicht verschachtelten Wörterbuchwerte abzurufen, während rekursiv auf verschachtelte Wörterbuchwerte zugegriffen wird.
Der erste Versuch mit Iteration funktioniert aufgrund des begrenzten Umfangs nur für die ersten beiden Ebenen innere Schleife. Auch beim zweiten Versuch gelingt es aufgrund der statischen Implementierung nicht, das Wörterbuch vollständig zu durchlaufen.
Um diese Einschränkung zu überwinden, ist eine Rekursion erforderlich. Indem Sie eine Funktion zum Drucken der Wörterbuchwerte definieren, können Sie die Funktion rekursiv für alle verschachtelten Wörterbücher aufrufen, um auf deren Werte zuzugreifen.
Hier ist ein Beispiel für eine rekursive Lösung:
def myprint(d): for k, v in d.items(): if isinstance(v, dict): myprint(v) # Recurs if value is a dictionary else: print("{0} : {1}".format(k, v))
Diese Lösung beginnt mit der Iteration durch die Schlüssel-Wert-Paare des Eingabewörterbuchs. Für jedes Schlüssel-Wert-Paar wird geprüft, ob der Wert ein Wörterbuch ist. Wenn dies der Fall ist, ruft es rekursiv die Funktion myprint mit dem verschachtelten Wörterbuch als Parameter auf. Wenn der Wert kein Wörterbuch ist, wird einfach das Schlüssel-Wert-Paar gedruckt.
Durch die Verwendung von Rekursion kann diese Lösung eine beliebige Anzahl verschachtelter Wörterbuchebenen durchlaufen, um auf alle nicht verschachtelten Wörterbuchwerte zuzugreifen und diese zu drucken.
Das obige ist der detaillierte Inhalt vonWie kann ich rekursiv auf Werte aus einem verschachtelten Wörterbuch zugreifen und diese drucken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!