Durchsuchen Sie eine Liste von Dictionaries in Python

Muhammad Maisam Abbas 19 Oktober 2021
  1. Verwenden Sie die Funktion next(), um eine Liste von Dictionaries in Python zu durchsuchen
  2. Durchsuchen Sie eine Liste von Dictionaries mit der Funktion filter() in Python
  3. Verwenden Sie List Comprehensions, um eine Liste von Dictionaries in Python zu durchsuchen
Durchsuchen Sie eine Liste von Dictionaries in Python

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}
Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

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.

LinkedIn

Verwandter Artikel - Python Dictionary

Verwandter Artikel - Python List