HOWTO · Python

Trouver la clé par valeur dans le dictionnaire Python

Ce tutoriel montre comment obtenir une clé par valeur dans le dictionnaire Python.

Sur cette page

Le dictionnaire est une collection d’éléments dans une paire clé-valeur. Les éléments stockés dans un dictionnaire ne sont pas ordonnés. Dans cet article, nous présenterons différentes façons de trouver la clé par valeur dans un dictionnaire Python. Habituellement, on accède à une valeur en utilisant une clé, mais ici nous allons accéder à une clé en utilisant une valeur. Ici, la clé est une identité associée à la valeur.

Utilisez dict.items() pour trouver une clé par valeur dans un dictionnaire Python

La méthode dict.items() retourne une liste dont l’élément individuel est un tuple constitué de la clé de la valeur du dictionnaire. Nous pouvons obtenir la clé en itérant le résultat de dict.items() et en comparant la value avec le second élément du tuple.

Exemple de code :

my_dict = {"John": 1, "Michael": 2, "Shawn": 3}


def get_key(val):
    for key, value in my_dict.items():
        if val == value:
            return key

    return "There is no such Key"


print(get_key(1))
print(get_key(2))

Production :

John
Michael

Utilisez .keys() et .values() pour trouver la clé par valeur dans le dictionnaire Python

dict.keys() retourne une liste constituée de clés du dictionnaire ; dict.values() retourne une liste constituée de valeurs du dictionnaire. L’ordre des éléments générés dans .keys() et .values() est le même.

La méthode index() de la liste Python donne l’index de l’argument donné. Nous pouvons passer la value à la méthode index() de la liste des clés générées pour obtenir l’index de cette valeur. Ensuite, la clé peut être obtenue en accédant à la liste des valeurs générées avec l’index retourné.

my_dict = {"John": 1, "Michael": 2, "Shawn": 3}

list_of_key = list(my_dict.keys())
list_of_value = list(my_dict.values())

position = list_of_value.index(1)
print(list_of_key[position])

position = list_of_value.index(2)
print(list_of_key[position])

Production :

John
Michael