Maison >développement back-end >Tutoriel Python >Comment gérer « KeyError » lors de l'exécution de recherches inversées dans les dictionnaires Python ?

Comment gérer « KeyError » lors de l'exécution de recherches inversées dans les dictionnaires Python ?

Mary-Kate Olsen
Mary-Kate Olsenoriginal
2024-12-14 01:27:111011parcourir

How to Handle `KeyError` When Performing Reverse Lookups in Python Dictionaries?

Recherches inversées dans les dictionnaires Python : récupération des clés par valeurs

Bien que les dictionnaires Python fournissent un moyen efficace de mapper les clés à leurs valeurs correspondantes, il existe Il peut y avoir des situations dans lesquelles vous devez effectuer des recherches inversées. Cela peut s'avérer utile dans les scénarios dans lesquels vous avez une valeur et devez trouver la clé associée.

Question :

Supposons que vous disposiez d'un dictionnaire qui mappe les noms aux âges. . Votre tâche consiste à créer une fonction qui prend un âge en entrée et renvoie le nom correspondant. Cependant, votre script rencontre une erreur KeyError et vous demandez de l'aide pour modifier le code afin de gérer ce cas.

Code :

dictionary = {'george': 16, 'amber': 19}
search_age = raw_input("Provide age")
for age in dictionary.values():
    if age == search_age:
        name = dictionary[age]
        print name

Solution :

Le code fourni tente de parcourir les valeurs du dictionnaire et de les comparer avec l'âge d'entrée. Si une correspondance est trouvée, le code tente de récupérer la clé correspondante dans le dictionnaire en utilisant le dictionnaire[age], c'est là que se produit l'erreur KeyError.

Pour effectuer des recherches inversées en Python, nous pouvons utiliser deux méthodes :

Méthode 1 :

mydict = {'george': 16, 'amber': 19}
print mydict.keys()[mydict.values().index(16)]  # Prints george

Cette approche consiste à obtenir une liste de toutes les clés et valeurs en utilisant mydict.keys() et mydict.values(), respectivement. Nous utilisons ensuite index() sur la liste des valeurs pour trouver la position de l'âge d'entrée et récupérer la clé à cette position.

Méthode 2 (Python 3.x) :

mydict = {'george': 16, 'amber': 19}
print(list(mydict.keys())[list(mydict.values()).index(16)])  # Prints george

Semblable à la première méthode, cette approche consiste à convertir des clés et des valeurs en listes. Cependant, il exploite la syntaxe Python 3.x pour simplifier le processus d'indexation.

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:
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