Heim > Backend-Entwicklung > Python-Tutorial > Wie erstelle ich ein unendlich verschachteltes Standarddikt in Python?

Wie erstelle ich ein unendlich verschachteltes Standarddikt in Python?

DDD
Freigeben: 2024-11-26 07:43:09
Original
219 Leute haben es durchsucht

How to Create an Infinitely-Nested defaultdict in Python?

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 {}
Nach dem Login kopieren

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))
Nach dem Login kopieren

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:

  • Explizit und verständlich:Die Syntax klar Definiert das gewünschte Verhalten und macht es anderen Entwicklern leicht, dies zu tun verstehen.
  • Flexible Datentypen: Das „Blatt“ des Standarddikts kann durch Ändern der Lambda-Funktion als Liste, Menge oder jede andere Datenstruktur angepasst werden.

Hinweis:

Das unendlich verschachtelte Standarddikt mit Lambda hat die Folgende Eigenschaften:

  • Der Zugriff auf einen fehlenden Schlüssel wird immer eine neue Instanz des angegebenen Datentyps zurückgeben (in diesem Fall ein defaultdict(dict)).
  • Die Verschachtelungstiefe ist technisch begrenzt durch den verfügbaren Speicher und die spezifische verwendete Datenstruktur (in diesem Fall ein defaultdict(dict)).

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!

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