Maison >développement back-end >Tutoriel Python >Comment rechercher et récupérer efficacement un dictionnaire à partir d'une liste en Python sur la base de la correspondance clé-valeur ?
Rechercher et récupérer un dictionnaire à partir d'une liste basée sur des critères spécifiques
En Python, manipuler des listes de dictionnaires est une tâche courante. Un de ces scénarios consiste à rechercher et à récupérer un dictionnaire spécifique en fonction de sa paire clé-valeur.
Problème :
Considérez la liste de dictionnaires suivante :
[ { "name": "Tom", "age": 10 }, { "name": "Mark", "age": 5 }, { "name": "Pam", "age": 7 } ]
Comment rechercher et récupérer le dictionnaire avec la clé "nom" définie sur "Pam" ?
Solution :
Pour résoudre ce problème, nous pouvons utiliser une expression génératrice, comme démontré ci-dessous :
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")
Le L'expression du générateur parcourt chaque dictionnaire de la liste et vérifie si sa clé « nom » correspond à « Pam ». Si une correspondance est trouvée, le dictionnaire correspondant est renvoyé et stocké dans la variable de résultat. La fonction next() garantit que le premier élément correspondant est renvoyé.
Par exemple, l'exécution de l'extrait de code ci-dessus récupérera le dictionnaire :
{'age': 7, 'name': 'Pam'}
Gestion de l'élément introuvable :
Si l'élément n'est pas trouvé, vous pouvez le gérer en fournissant une valeur par défaut en utilisant un paramètre légèrement différent API :
result = next((item for item in dicts if item["name"] == "Pam"), None)
L'argument Aucun garantit que la fonction renvoie Aucun si aucun élément correspondant n'est trouvé.
Recherche de l'index de l'élément :
Pour trouver l'index de l'élément correspondant au lieu de l'élément lui-même, vous pouvez utiliser la fonction enumerate() :
index = next((i for i, item in enumerate(dicts) if item["name"] == "Pam"), None)
Le La fonction enumerate() renvoie un itérateur de tuples, où chaque tuple contient l'index et l'élément. L'expression génératrice utilise cet itérateur pour trouver l'index du premier élément correspondant et le stocke dans la variable index.
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!