Heim >Backend-Entwicklung >Python-Tutorial >Wie drucke ich alle Werte aus einem verschachtelten Wörterbuch in Python rekursiv aus?

Wie drucke ich alle Werte aus einem verschachtelten Wörterbuch in Python rekursiv aus?

Mary-Kate Olsen
Mary-Kate OlsenOriginal
2024-11-29 05:31:11669Durchsuche

How to Recursively Print All Values from a Nested Dictionary in Python?

Rekursive Schleife durch verschachtelte Wörterbuchwerte

Problemstellung

Bei einem verschachtelten Wörterbuch besteht die Aufgabe darin, alle seine Schlüssel-Wert-Paare zu durchlaufen. Drucken von Werten, die keine verschachtelten Wörterbücher sind. Bei verschachtelten Wörterbüchern sollte die Durchquerung rekursiv fortgesetzt werden, um ihre Schlüssel-Wert-Paare auszugeben.

Lösung

Unter Verwendung der Rekursion kann eine Funktion definiert werden, um diese Aufgabe auszuführen:

def myprint(d):
    for k, v in d.items():
        if isinstance(v, dict):
            myprint(v)
        else:
            print("{0} : {1}".format(k, v))

Diese Funktion akzeptiert ein Wörterbuch als Argument und durchläuft seine Schlüssel-Wert-Paare. Wenn ein Wert kein verschachteltes Wörterbuch ist, wird das Schlüssel-Wert-Paar ausgegeben. Wenn der Wert ein Wörterbuch ist, wird die Funktion „myprint“ rekursiv mit diesem neuen Wörterbuch aufgerufen.

Beispiel

Betrachten Sie das folgende Wörterbuch:

d = {
    "xml": {
        "config": {
            "portstatus": {"status": "good"},
            "target": "1"
        },
        "port": "11"
    }
}

Der Aufruf der Funktion „myprint“ würde Ausgabe:

xml : {config: {portstatus: {status: good}, target: 1}, port: 11}
config : {portstatus: {status: good}, target: 1}
portstatus : {status: good}
target : 1
port : 11

Diese Lösung bietet einen rekursiven Mechanismus, um alle verschachtelten Wörterbuchwerte zu durchlaufen und sie auszugeben wie gewünscht.

Das obige ist der detaillierte Inhalt vonWie drucke ich alle Werte aus einem verschachtelten Wörterbuch in Python rekursiv aus?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
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