Durchsuchen Sie eine Liste von Dictionaries in Python
-
Verwenden Sie die Funktion
next()
, um eine Liste von Dictionaries in Python zu durchsuchen -
Durchsuchen Sie eine Liste von Dictionaries mit der Funktion
filter()
in Python - Verwenden Sie List Comprehensions, um eine Liste von Dictionaries in Python zu durchsuchen
![Durchsuchen Sie eine Liste von Dictionaries in Python](/img/Python/feature-image---python-search-list-of-dictionaries.webp)
In diesem Tutorial werden die Methoden vorgestellt, mit denen Sie eine Liste von Dictionaries in Python durchsuchen können.
Verwenden Sie die Funktion next()
, um eine Liste von Dictionaries in Python zu durchsuchen
Die Funktion next()
kann verwendet werden, um das Ergebnis als nächstes Element im angegebenen Iterator bereitzustellen. Diese Methode erfordert auch die Verwendung der for
-Schleife, um den Prozess gegen alle Bedingungen zu testen.
Der folgende Code verwendet die Funktion next()
, um eine Liste von Dictionaries in Python zu durchsuchen.
lstdict = [
{"name": "Klaus", "age": 32},
{"name": "Elijah", "age": 33},
{"name": "Kol", "age": 28},
{"name": "Stefan", "age": 8},
]
print(next(x for x in lstdict if x["name"] == "Klaus"))
print(next(x for x in lstdict if x["name"] == "David"))
Ausgabe:
{'name': 'Klaus', 'age': 32}
Traceback (most recent call last):
File "<string>", line 8, in <module>
StopIteration
Diese Methode wird erfolgreich implementiert, wenn wir nach einem Namen suchen, der bereits in der Liste der Wörterbücher vorhanden ist. Trotzdem gibt es einen StopIteration
-Fehler aus, wenn ein Name gesucht wird, der nicht in der Liste der Wörterbücher vorhanden ist.
Dieses Problem kann jedoch im obigen Code leicht behandelt werden. Sie optimieren einfach und stellen einen Standard mit der Verwendung einer etwas anderen API bereit.
lstdict = [
{"name": "Klaus", "age": 32},
{"name": "Elijah", "age": 33},
{"name": "Kol", "age": 28},
{"name": "Stefan", "age": 8},
]
print(next((x for x in lstdict if x["name"] == "David"), None))
Ausgabe:
None
Anstatt das Element selbst zu finden, können wir auch den Index des Elements in einer Liste von Dictionaries finden. Um dies zu implementieren, können wir die Funktion enumerate()
verwenden.
Der folgende Code verwendet die Funktion next()
und die Funktion enumerate()
, um den Index des Elements zu suchen und zu finden.
lstdict = [
{"name": "Klaus", "age": 32},
{"name": "Elijah", "age": 33},
{"name": "Kol", "age": 28},
{"name": "Stefan", "age": 8},
]
print(next((i for i, x in enumerate(lstdict) if x["name"] == "Kol"), None))
Ausgabe:
2
Durchsuchen Sie eine Liste von Dictionaries mit der Funktion filter()
in Python
Die Funktion filter(function, sequence)
wird verwendet, um die sequence
mit der function
in Python zu vergleichen. Es prüft, ob jedes Element in der Sequenz entsprechend der Funktion wahr ist oder nicht. Wir können ganz einfach eine Liste von Dictionaries nach einem Element durchsuchen, indem wir die Funktion filter()
mit einer lambda
-Funktion verwenden. In Python3 gibt die Funktion filter()
ein Objekt der Klasse filter
zurück. Wir können dieses Objekt mit der Funktion list()
in eine Liste umwandeln.
Das folgende Codebeispiel zeigt uns, wie wir mit den Funktionen filter()
und lambda
eine Liste von Dictionaries nach einem bestimmten Element durchsuchen können.
listOfDicts = [
{"name": "Tommy", "age": 20},
{"name": "Markus", "age": 25},
{"name": "Pamela", "age": 27},
{"name": "Richard", "age": 22},
]
list(filter(lambda item: item["name"] == "Richard", listOfDicts))
Ausgabe:
[{'age': 22, 'name': 'Richard'}]
Wir haben die Liste der Wörterbücher nach dem Element durchsucht, bei dem der Schlüssel name
gleich Richard
ist, indem wir die Funktion filter()
mit einer lambda
-Funktion verwendet haben. Zuerst haben wir unsere Dictionary Liste listOfDicts
initialisiert und mit der Funktion filter()
die Werte gesucht, die der lambda
-Funktion lambda item: item['name'] == 'Richard'
entsprechen in es. Schließlich haben wir die Funktion list()
verwendet, um die Ergebnisse in eine Liste umzuwandeln.
Verwenden Sie List Comprehensions, um eine Liste von Dictionaries in Python zu durchsuchen
List Comprehensions ist eine relativ kürzere und sehr anmutige Möglichkeit, Listen zu erstellen, die basierend auf den gegebenen Werten einer bereits existierenden Liste gebildet werden sollen.
Wir können das List Comprehensions verwenden, um eine Liste zurückzugeben, die die Ergebnisse der Suche in der Liste der Wörterbücher in Python liefert.
Der folgende Code verwendet das List Comprehensions, um eine Liste von Dictionaries in Python zu durchsuchen.
lstdict = [
{"name": "Klaus", "age": 32},
{"name": "Elijah", "age": 33},
{"name": "Kol", "age": 28},
{"name": "Stefan", "age": 8},
]
print([x for x in lstdict if x["name"] == "Klaus"][0])
Ausgabe:
{'name': 'Klaus', 'age': 32}
Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.
LinkedInVerwandter Artikel - Python Dictionary
- Wie man prüft, ob ein Schlüssel in einem Dictionary in Python vorhanden ist
- Konvertieren eines Dictionaries in eine Liste in Python
- So erhalten Sie alle Dateien eines Verzeichnisses
- Wie finde ich den Maximalwert im Python-Dictionary
- Wie man ein Python-Dictionary nach Wert sortiert
- Wie man zwei Wörterbücher in Python 2 und 3 zusammenführen kann
Verwandter Artikel - Python List
- Alle Vorkommen eines Elements aus einer Liste in Python entfernen
- Konvertieren eines Dictionaries in eine Liste in Python
- Duplikate aus Liste entfernen in Python
- Wie erhält man den Durchschnitt einer Liste in Python
- Was ist der Unterschied zwischen den Listenmethoden append und extend
- Wie man eine Liste in Python in eine Zeichenkette konvertiert