Heim > Backend-Entwicklung > Python-Tutorial > Wie finde ich alle Vorkommen eines Schlüssels in verschachtelten Wörterbüchern und Listen?

Wie finde ich alle Vorkommen eines Schlüssels in verschachtelten Wörterbüchern und Listen?

Mary-Kate Olsen
Freigeben: 2024-11-11 15:42:03
Original
843 Leute haben es durchsucht

How to Find All Occurrences of a Key in Nested Dictionaries and Lists?

Alle Vorkommen eines Schlüssels in verschachtelten Wörterbüchern und Listen finden

Dieses Problem stellt ein Wörterbuch mit beliebiger Verschachtelungstiefe dar, das Listen und Wörterbücher enthält . Das Ziel besteht darin, die Werte jeder Schlüssel-ID innerhalb der Struktur zu extrahieren.

Lösung:

Die folgenden Funktionen bieten verschiedene Ansätze zum Durchlaufen der verschachtelten Datenstruktur und Rufen Sie die „id“-Werte ab:

  1. gen_dict_extract(k,o): Diese Funktion verwendet einen rekursiven Generator, um im Wörterbuch und in den Listen zu navigieren. Es prüft, ob die Funktion „iteritems“ sowohl Python 2- als auch Python-3-Versionen verarbeiten kann.
  2. find_all_items(k,o): Ähnlich wie beim ersten Ansatz verwendet diese Funktion Rekursion und Iteration zum Extrahieren die „id“-Werte.
  3. findkeys(k,o): Diese Funktion nutzt die „isinstance“-Methode, um Listen und Wörterbücher innerhalb der Struktur zu identifizieren. Es verwendet verschachtelte „for“-Schleifen, um die Daten zu durchlaufen und „id“-Schlüssel zu finden.
  4. get_recursively(k,o): Diese Funktion kombiniert die Prinzipien der Rekursion und des Verständnisses, um die zu durchlaufen Verschachtelung und Suche nach dem Zielschlüssel.
  5. find(k,o): Unter Verwendung eines vereinfachten rekursiven Ansatzes durchläuft diese Funktion das Wörterbuch und listet auf, um „id“-Werte zu extrahieren.
  6. dict_extract(k,o): Ähnlich wie die Suchfunktion verwendet diese Funktion einen etwas einfacheren rekursiven Ansatz, um „id“-Werte innerhalb der Struktur zu finden.

Leistungsvergleich:

Nach dem Testen der Funktionen anhand eines komplexen Wörterbuchobjekts erwies sich die Funktion gen_dict_extract als die schnellste, während die Funktion find_all_items eine deutlich unterdurchschnittliche Leistung erbrachte. Die anderen Funktionen zeigten eine ähnliche Leistung, wobei „find“ und „keyHole“ auf Zeichenfolgensuchvorgänge beschränkt waren.

Das obige ist der detaillierte Inhalt vonWie finde ich alle Vorkommen eines Schlüssels in verschachtelten Wörterbüchern und Listen?. 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