Heim > Backend-Entwicklung > Python-Tutorial > Kann ein Standarddikt rekursiv als eigener Standardwert für die unendliche Verschachtelung dienen?

Kann ein Standarddikt rekursiv als eigener Standardwert für die unendliche Verschachtelung dienen?

Susan Sarandon
Freigeben: 2024-11-28 02:35:12
Original
412 Leute haben es durchsucht

Can a defaultdict Recursively Serve as its Own Default Value for Infinite Nesting?

Erstellen eines unendlich verschachtelten Standarddikts von defaultdict

Frage:

Ist es möglich, ein Standarddikt zu erstellen, das auch als dient den Standardwert für sich selbst, was zu einem rekursiven Standarddikt auf unendlicher Ebene führt? Das Ziel besteht darin, den Zugriff auf tief verschachtelte Elemente zu ermöglichen, ohne auf KeyError-Ausnahmen zu stoßen.

Antwort:

Während sich die anderen Antworten mit der Erstellung „unendlich vieler“ verschachtelter Defaultdicts befassen, Sie übersehen die spezifische Notwendigkeit eines zweistufigen Standarddikts. Um dies zu erreichen, kann der folgende Code verwendet werden:

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

Dieses Konstrukt bietet die folgenden Vorteile:

  • Eindeutigkeit:Es ist einfacher und verständlicher als der rekursive Ansatz.
  • Anpassbares Blatt: Es ermöglicht die Anpassung des „Blatt“-Wert des Standarddikts, um etwas anderes als ein Wörterbuch zu sein, z. B. Listen oder Mengen.

Beispiel:

x = defaultdict(lambda: defaultdict(dict))
x[0][1][0]
{}  # returns an empty dictionary
Nach dem Login kopieren

Das obige ist der detaillierte Inhalt vonKann ein Standarddikt rekursiv als eigener Standardwert für die unendliche Verschachtelung dienen?. 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