So erstellen Sie ein rekursives Standarddikt auf unendlicher Ebene
Pythons Standarddikt ist eine vielseitige Datenstruktur, die zum Erstellen verschachtelter Wörterbücher verwendet werden kann. Standardmäßig bieten defaultdicts jedoch nur eine einzige Verschachtelungsebene. Gibt es eine Möglichkeit, ein Standarddikt zu erstellen, das sich als Standardfabrik für innere Standarddikte verhält und so effektiv eine rekursive Struktur auf unendlicher Ebene erstellt?
Mit der ursprünglichen Frage sollte das folgende Verhalten erreicht werden:
x = defaultdict(...stuff...) x[0][1][0] # Should return an empty dictionary {}
Wenn nur die nativen Defaultdict-Argumente verwendet werden, ist es nicht möglich, ein unendlich verschachteltes rekursives Defaultdict zu erstellen. Die beliebte Problemumgehung besteht darin, eine Lambda-Funktion zu verwenden:
x = defaultdict(lambda: defaultdict(dict))
Dieser Ansatz erstellt ein Defaultdict, das beim Zugriff auf einen fehlenden Schlüssel ein neues Defaultdict generiert. Dies sorgt effektiv für unendlich viele Verschachtelungsebenen.
Vorteile des Lambda-basierten Ansatzes:
Hinweis:
Das unendlich verschachtelte Standarddikt mit Lambda hat die Folgende Eigenschaften:
Das obige ist der detaillierte Inhalt vonWie erstelle ich ein unendlich verschachteltes Standarddikt in Python?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!