Comment effectuer des recherches de dictionnaire inverses efficaces en Python ?

Barbara Streisand
Libérer: 2024-10-17 15:59:02
original
704 Les gens l'ont consulté

How to Perform Efficient Inverse Dictionary Lookups in Python?

Recherche inverse de dictionnaire en Python

En Python, les dictionnaires sont une structure de données courante utilisée pour stocker des paires clé-valeur. Bien que la récupération de valeurs en spécifiant une clé soit simple, le processus d'identification d'une clé basée sur une valeur connue (recherche inverse dans le dictionnaire) peut être moins intuitif.

Une approche pour effectuer une recherche inverse dans le dictionnaire consiste à parcourir tous paires clé-valeur dans le dictionnaire et vérifiez si la valeur correspond à celle souhaitée. Cette méthode, cependant, peut s'avérer inefficace pour les dictionnaires volumineux.

Une alternative plus efficace consiste à utiliser une expression génératrice, qui génère des valeurs à la demande et s'arrête lorsque la première correspondance est trouvée.

Exemple :

<code class="python"># Assume dd is the dictionary
key = next(key for key, value in dd.items() if value == 'value')</code>
Copier après la connexion

Cette expression parcourt les éléments du dictionnaire, vérifiant si la valeur correspond à « valeur ». Lorsqu'une correspondance est trouvée, il renvoie la clé correspondante. Si aucune correspondance n'est trouvée, une exception StopIteration est générée.

Pour gérer cette exception, vous pouvez l'intercepter et renvoyer une exception personnalisée, telle que ValueError ou KeyError, à la place :

<code class="python">try:
    key = next(key for key, value in dd.items() if value == 'value')
except StopIteration:
    raise ValueError('No match found')</code>
Copier après la connexion

Cette méthode offre un moyen concis et efficace d'effectuer des recherches de dictionnaire inversées en Python.

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!

source:php
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
À propos de nous Clause de non-responsabilité Sitemap
Site Web PHP chinois:Formation PHP en ligne sur le bien-être public,Aidez les apprenants PHP à grandir rapidement!