Maison > développement back-end > Tutoriel Python > Comment effectuer une recherche de dictionnaire inverse efficace en Python à l'aide d'expressions génératrices ?

Comment effectuer une recherche de dictionnaire inverse efficace en Python à l'aide d'expressions génératrices ?

Susan Sarandon
Libérer: 2024-10-17 16:01:02
original
751 Les gens l'ont consulté

How to Perform Efficient Inverse Dictionary Lookup in Python Using Generator Expressions?

Recherche inverse de dictionnaire en Python : une approche efficace

Alors parcourir un dictionnaire pour trouver une clé correspondant à une valeur donnée peut être laborieux , il existe une solution simple utilisant une expression génératrice.

Pour illustrer, considérons un dictionnaire nommé « dd ». L'approche traditionnelle, comme vous l'avez suggéré, implique une compréhension de liste :

<code class="python">key = [key for key, value in dd.items() if value == 'value'][0]</code>
Copier après la connexion

Cette méthode consiste à parcourir l'ensemble des éléments du dictionnaire, consommant des ressources même après avoir trouvé la première correspondance.

Pour optimiser la processus, nous pouvons utiliser une expression génératrice :

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

Cette expression utilise une fonction « suivant », qui prend un générateur comme argument. Le générateur parcourt les éléments du dictionnaire jusqu'à ce qu'il trouve une correspondance, produisant la clé correspondante.

En utilisant une expression génératrice, nous minimisons les itérations inutiles, améliorant ainsi considérablement l'efficacité du processus de recherche inverse du dictionnaire. Il convient de noter que si aucune correspondance n'est trouvée, l'expression du générateur déclenchera une exception « StopIteration ».

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