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

Wie kann ich in Python ein unendlich verschachteltes Standarddikt erstellen?

Linda Hamilton
Freigeben: 2024-11-24 04:35:11
Original
672 Leute haben es durchsucht

How Can I Create an Infinitely Nested defaultdict in Python?

Infinite-Level Nested Defaultdicts

Frage

Wie kann man ein unendlich verschachteltes Defaultdict erstellen? Mit anderen Worten: Ist es möglich, den Standardwert eines defaultdict auf ein anderes defaultdict festzulegen? Dies würde verschachtelte Strukturen beliebiger Tiefe ermöglichen, die bei Bedarf automatisch die erforderlichen Wörterbücher erstellen.

Betrachten Sie beispielsweise den folgenden Code:

x = defaultdict(...stuff...)
x[0][1][0]
{}
Nach dem Login kopieren

In diesem Szenario würde x[0] gelten ein Standarddikt sein, x[0][1] wäre ein anderes Standarddikt und x[0][1][0] wäre ein Standard Wörterbuch.

Antwort

Es ist zwar möglich, ein Defaultdict zu erstellen, das andere Defaultdicts enthält, es wird jedoch nicht direkt von den Standard-Defaultdict-Argumenten unterstützt. Es gibt jedoch eine einfache Problemumgehung, die mehrstufige verschachtelte Defaultdicts ermöglicht.

Anstatt den Standardwert als ein weiteres Defaultdict zu definieren, definieren Sie den Standardwert als Lambda-Funktion, die ein Defaultdict zurückgibt:

x = defaultdict(lambda: defaultdict(dict))
Nach dem Login kopieren

Dieser Code erstellt ein zweistufiges Standarddikt, wobei x[0] ein Standarddikt und x[0][1] ein weiteres Standarddikt ist, mit Werten von Wörterbücher.

Für eine Verschachtelung auf unendlicher Ebene fügen Sie einfach zusätzliche Ebenen zur Lambda-Funktion hinzu:

x = defaultdict(lambda: defaultdict(lambda: defaultdict(...)))
Nach dem Login kopieren

Diese Problemumgehung ermöglicht die Erstellung beliebig verschachtelter Defaultdicts und bietet so eine bequeme Möglichkeit, komplexe Daten zu verwalten Strukturen mit automatischer Wertschöpfung.

Das obige ist der detaillierte Inhalt vonWie kann ich in Python ein unendlich verschachteltes Standarddikt erstellen?. 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
Neueste Artikel des Autors
Beliebte Tutorials
Mehr>
Neueste Downloads
Mehr>
Web-Effekte
Quellcode der Website
Website-Materialien
Frontend-Vorlage