Heim >Backend-Entwicklung >Python-Tutorial >Wie kann ich in Python ein rekursives Standarddikt auf unendlicher Ebene erstellen?
Erstellen eines rekursiven defaultdict auf unendlicher Ebene
In Python ist defaultdict ein vielseitiges Tool, das einen Standardwert für fehlende Schlüssel in Wörterbüchern bereitstellt. Ist es jedoch möglich, ein rekursives Standarddikt auf unendlicher Ebene zu erstellen? Dies bedeutet, ein Standarddikt zu erstellen, bei dem der Standardwert auch ein Standarddikt ist, wodurch effektiv verschachtelte Standarddikte erstellt werden.
Anfangs könnte man erwarten, dass x = defaultdict(defaultdict) ein zweistufiges Standarddikt erstellen würde, aber der Zugriff auf x[0 ][0] führt zu einem KeyError. Um eine Rekursion auf unendlicher Ebene zu erreichen, ist ein alternativer Ansatz erforderlich.
Eine Lösung besteht darin, eine Lambda-Funktion als Standardwert zu verwenden:
x = defaultdict(lambda: defaultdict(dict))
Dadurch wird ein Standarddikt erstellt, in dem sich der Standardwert befindet eine Funktion, die ein anderes defaultdict mit einem Wörterbuch als Standardwert zurückgibt. Dies ermöglicht eine Rekursion auf unendlicher Ebene, da beim Zugriff auf x[0][1][0] ein leeres Wörterbuch innerhalb der verschachtelten Standarddiktate erstellt wird.
Im Vergleich zu der in anderen Antworten vorgestellten rekursiven Methode bietet dieser Ansatz mehrere Vorteile :
Das obige ist der detaillierte Inhalt vonWie kann ich in Python ein rekursives Standarddikt auf unendlicher Ebene erstellen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!