Heim > Backend-Entwicklung > Python-Tutorial > Wie kann man in Python basierend auf der Schlüsselwertübereinstimmung effizient ein Wörterbuch aus einer Liste finden und abrufen?

Wie kann man in Python basierend auf der Schlüsselwertübereinstimmung effizient ein Wörterbuch aus einer Liste finden und abrufen?

Barbara Streisand
Freigeben: 2024-12-10 06:43:37
Original
995 Leute haben es durchsucht

How to Efficiently Find and Retrieve a Dictionary from a List in Python Based on Key-Value Matching?

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 }
]
Nach dem Login kopieren

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")
Nach dem Login kopieren

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'}
Nach dem Login kopieren

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)
Nach dem Login kopieren

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)
Nach dem Login kopieren

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!

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