Recherche de dictionnaires spécifiques dans une liste de dictionnaires en Python
Étant donné une liste de dictionnaires, telle que :
[ { "name": "Tom", "age": 10 }, { "name": "Mark", "age": 5 }, { "name": "Pam", "age": 7 } ]
il peut être nécessaire de rechercher et de récupérer un dictionnaire spécifique en fonction d'un critère particulier. Par exemple, si nous souhaitons récupérer le dictionnaire associé au nom « Pam », nous pouvons exploiter diverses approches pythoniques.
Une solution efficace consiste à utiliser une expression génératrice, comme présenté ci-dessous :
>>> next(item for item in dicts if item["name"] == "Pam") {'age': 7, 'name': 'Pam'}
Cette expression génératrice parcourt chaque dictionnaire de la liste, évaluant la condition dans if item["name"] == "Pam". Une fois qu'un dictionnaire remplissant cette condition est rencontré, il est renvoyé comme résultat.
Pour gérer les situations où le dictionnaire souhaité peut ne pas exister, nous pouvons fournir une valeur par défaut comme suggéré par l'utilisateur Matt dans son commentaire. Ceci peut être réalisé en utilisant une API légèrement différente :
next((item for item in dicts if item["name"] == "Pam"), None)
Alternativement, si nous devons déterminer l'index du dictionnaire correspondant plutôt que le dictionnaire lui-même, nous pouvons énumérer() la liste comme suit :
next((i for i, item in enumerate(dicts) if item["name"] == "Pam"), None)
En employant ces techniques, nous pouvons rechercher et récupérer efficacement des dictionnaires spécifiques dans une liste de dictionnaires en Python, ce qui nous permet d'effectuer des tâches complexes de manipulation et de récupération de données avec facilité.
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!