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:
-
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.
-
find_all_items(k,o): Ähnlich wie beim ersten Ansatz verwendet diese Funktion Rekursion und Iteration zum Extrahieren die „id“-Werte.
-
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.
-
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.
-
find(k,o): Unter Verwendung eines vereinfachten rekursiven Ansatzes durchläuft diese Funktion das Wörterbuch und listet auf, um „id“-Werte zu extrahieren.
-
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!