Suchen und Abrufen eines Wörterbuchs aus einer Liste basierend auf bestimmten Kriterien
In Python ist das Bearbeiten von Wörterbuchlisten eine häufige Aufgabe. Ein solches Szenario beinhaltet das Suchen und Abrufen eines bestimmten Wörterbuchs basierend auf seinem Schlüssel-Wert-Paar.
Problem:
Betrachten Sie die folgende Liste von Wörterbüchern:
[ { "name": "Tom", "age": 10 }, { "name": "Mark", "age": 5 }, { "name": "Pam", "age": 7 } ]
Wie suchen und rufen wir das Wörterbuch ab, wenn der Schlüssel „Name“ auf eingestellt ist? „Pam“?
Lösung:
Um dieses Problem zu lösen, können wir einen Generatorausdruck verwenden, wie unten gezeigt:
dicts = [ { "name": "Tom", "age": 10 }, { "name": "Mark", "age": 5 }, { "name": "Pam", "age": 7 }, { "name": "Dick", "age": 12 } ] result = next(item for item in dicts if item["name"] == "Pam")
The Der Generatorausdruck durchläuft jedes Wörterbuch in der Liste und prüft, ob sein „Name“-Schlüssel mit „Pam“ übereinstimmt. Wenn eine Übereinstimmung gefunden wird, wird das entsprechende Wörterbuch zurückgegeben und in der Ergebnisvariablen gespeichert. Die Funktion next() stellt sicher, dass das erste passende Element zurückgegeben wird.
Wenn Sie beispielsweise das obige Code-Snippet ausführen, wird das Wörterbuch abgerufen:
{'age': 7, 'name': 'Pam'}
Behandlung von Element nicht gefunden:
Wenn das Element nicht gefunden wird, können Sie es beheben, indem Sie einen Standardwert mit einem etwas anderen angeben API:
result = next((item for item in dicts if item["name"] == "Pam"), None)
Das None-Argument stellt sicher, dass die Funktion None zurückgibt, wenn kein passendes Element gefunden wird.
Suchen des Index des Elements:
Um den Index des passenden Elements anstelle des Elements selbst zu finden, können Sie die Funktion enumerate() verwenden:
index = next((i for i, item in enumerate(dicts) if item["name"] == "Pam"), None)
The Die Funktion enumerate() gibt einen Iterator von Tupeln zurück, wobei jedes Tupel den Index und das Element enthält. Der Generatorausdruck verwendet diesen Iterator, um den Index des ersten übereinstimmenden Elements zu finden und ihn in der Indexvariablen zu speichern.
Das obige ist der detaillierte Inhalt vonWie kann man in Python basierend auf der Schlüsselwertübereinstimmung effizient ein Wörterbuch aus einer Liste finden und abrufen?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!