Rechercher une liste de dictionnaires en Python
-
Utilisez la fonction
next()
pour rechercher une liste de dictionnaires en Python -
Rechercher une liste de dictionnaires avec la fonction
filter()
en Python - Utiliser la compréhension de liste pour rechercher une liste de dictionnaires en Python
Ce didacticiel présentera les méthodes que vous pouvez utiliser pour rechercher une liste de dictionnaires en Python.
Utilisez la fonction next()
pour rechercher une liste de dictionnaires en Python
La fonction next()
peut être utilisée pour fournir le résultat en tant qu’élément suivant dans l’itérateur donné. Cette méthode nécessite également l’utilisation de la boucle for
pour tester le processus dans toutes les conditions.
Le code suivant utilise la fonction next()
pour rechercher une liste de dictionnaires en Python.
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"))
Production:
{'name': 'Klaus', 'age': 32}
Traceback (most recent call last):
File "<string>", line 8, in <module>
StopIteration
Cette méthode est implémentée avec succès lorsque l’on recherche un nom qui existe déjà dans la liste des dictionnaires. Néanmoins, il renvoie une erreur StopIteration
lorsqu’un nom qui n’existe pas dans la liste des dictionnaires est recherché.
Cependant, ce problème peut être facilement traité dans le code ci-dessus. Vous ajustez simplement et fournissez une valeur par défaut avec l’utilisation d’une API légèrement différente.
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))
Production:
None
Plutôt que de trouver l’élément lui-même, nous pouvons également trouver l’index de l’élément dans une liste de dictionnaires. Pour implémenter cela, nous pouvons utiliser la fonction enumerate()
.
Le code suivant utilise la fonction next()
et la fonction enumerate()
pour rechercher et trouver l’index de l’élément.
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))
Production:
2
Rechercher une liste de dictionnaires avec la fonction filter()
en Python
La fonction filter(function, sequence)
permet de comparer la sequence
avec la function
en Python. Il vérifie que chaque élément de la séquence est vrai ou non selon la fonction. Nous pouvons facilement rechercher un élément dans une liste de dictionnaires en utilisant la fonction filter()
avec une fonction lambda
. En Python3, la fonction filter()
renvoie un objet de la classe filter()
. Nous pouvons convertir cet objet en liste avec la fonction list()
.
L’exemple de code suivant nous montre comment rechercher dans une liste de dictionnaires un élément spécifique avec les fonctions filter()
et lambda
.
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))
Production:
[{'age': 22, 'name': 'Richard'}]
Nous avons recherché dans la liste des dictionnaires l’élément où la clé name
est égale à Richard
en utilisant la fonction filter()
avec une fonction lambda
. Tout d’abord, nous avons initialisé notre liste de dictionnaires, listOfDicts
, et utilisé la fonction filter()
pour rechercher les valeurs qui correspondent à la fonction lambda
lambda item: item['name'] == 'Richard'
dans il. Enfin, nous avons utilisé la fonction list()
pour convertir les résultats en liste.
Utiliser la compréhension de liste pour rechercher une liste de dictionnaires en Python
La compréhension de liste est un moyen relativement plus court et très gracieux de créer des listes qui doivent être formées sur la base des valeurs données d’une liste déjà existante.
Nous pouvons utiliser la compréhension de liste pour renvoyer une liste qui produit les résultats de la recherche de la liste des dictionnaires en Python.
Le code suivant utilise la compréhension de liste pour rechercher une liste de dictionnaires en Python.
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])
Production:
{'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.
LinkedInArticle connexe - Python Dictionary
- Comment vérifier si une clé existe dans un dictionnaire en Python
- Convertir un dictionnaire en liste en Python
- Comment obtenir tous les fichiers d'un répertoire
- Comment trouver la valeur maximale dans le dictionnaire Python
- Comment trier un dictionnaire Python par valeur
- Comment fusionner deux dictionnaires en Python 2 et 3
Article connexe - Python List
- Convertir un dictionnaire en liste en Python
- Supprimer toutes les occurrences d'un élément d'une liste en Python
- Supprimer les doublons de la liste en Python
- Comment obtenir la moyenne d'une liste en Python
- Quelle est la différence entre les méthodes de liste append et extend
- Comment convertir une liste en chaîne de caractères en Python