Maison > développement back-end > Tutoriel Python > Comment rechercher efficacement un dictionnaire dans une liste basée sur une paire clé-valeur en Python ?

Comment rechercher efficacement un dictionnaire dans une liste basée sur une paire clé-valeur en Python ?

Barbara Streisand
Libérer: 2024-12-11 06:07:11
original
876 Les gens l'ont consulté

How to Efficiently Search for a Dictionary in a List Based on a Key-Value Pair in 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 },
]
Copier après la connexion

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)
Copier après la connexion

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}
Copier après la connexion

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)
Copier après la connexion

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)
Copier après la connexion

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!

Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Derniers articles par auteur
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal