Maison >développement back-end >Tutoriel Python >Comment rechercher efficacement un dictionnaire dans une liste basée sur une paire clé-valeur en Python ?
Recherche de dictionnaires dans une liste en Python
Problème :
Étant donné une liste de dictionnaires , comment pouvons-nous rechercher et récupérer efficacement un dictionnaire spécifique basé sur une paire clé-valeur ? Dans ce cas, nous voulons trouver le dictionnaire avec la clé "name" définie sur "Pam".
[ { "name": "Tom", "age": 10 }, { "name": "Mark", "age": 5 }, { "name": "Pam", "age": 7 }, ]
Solution :
Pour effectuer l'opération de recherche , nous pouvons exploiter les expressions génératrices intégrées de Python.
dicts = [ { "name": "Tom", "age": 10 }, { "name": "Mark", "age": 5 }, { "name": "Pam", "age": 7 }, ] result = next(item for item in dicts if item["name"] == "Pam") print(result)
Ce code parcourt chaque dictionnaire de la liste à l'aide d'une expression génératrice et de filtres basés sur le condition "item["name"] == "Pam"". Si un dictionnaire correspondant est trouvé, la fonction next() renvoie le premier élément correspondant.
{'name': 'Pam', 'age': 7}
Alternativement, si vous devez gérer le cas où l'élément correspondant n'est pas trouvé, vous pouvez utiliser l'approche suivante :
next((item for item in dicts if item["name"] == "Pam"), None)
Ce code renvoie Aucun si aucun élément correspondant n'est trouvé.
Pour trouver l'index de l'élément correspondant plutôt que l'élément lui-même, vous pouvez énumérer la liste :
next((i for i, item in enumerate(dicts) if item["name"] == "Pam"), None)
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!