Corriger l'erreur de clé dans un dictionnaire en Python

Vaibhav Vaibhav 12 avril 2022
Corriger l'erreur de clé dans un dictionnaire en Python

Dictionary est une structure de données évolutive disponible en Python. Il stocke les données sous la forme de paires clé-valeur où une clé peut être n’importe quel objet hachable et immuable et la valeur peut être n’importe quoi ; une liste, un tuple, un dictionnaire, une liste d’objets, etc.

À l’aide de clés, nous pouvons accéder aux valeurs vers lesquelles ces clés pointent. Si une clé inexistante est donnée à un dictionnaire, il lève une exception KeyError. Dans cet article, nous allons apprendre à gérer cette exception en Python.

Correction de l’exception KeyError dans un dictionnaire en Python

Pour résoudre l’exception KeyError, on peut vérifier si la clé existe dans le dictionnaire avant d’y accéder. La méthode keys() renvoie une liste de clés à l’intérieur du dictionnaire. Avant d’accéder à la valeur d’une clé, il est recommandé de vérifier si la clé existe dans cette liste si vous n’êtes pas sûr de son existence. Le code Python suivant décrit la même chose.

data = {
    "a": 101,
    "b": 201,
    "c": 301,
    "d": 401,
    "e": 501,
}
keys = ["a", "e", "r", "f", "c"]

for key in keys:
    if key in data.keys():
        print(data[key])
    else:
        print(f"'{key}' not found.")

Production :

101
501
'r' not found.
'f' not found.
301

Outre l’approche décrite ci-dessus, on peut également utiliser un bloc try...except pour intercepter l’exception KeyError ou toute exception. Reportez-vous au code Python suivant pour la même chose.

data = {
    "a": 101,
    "b": 201,
    "c": 301,
    "d": 401,
    "e": 501,
}
keys = ["a", "e", "r", "f", "c"]

for key in keys:
    try:
        print(data[key])
    except:
        print(f"'{key}' not found.")

Production :

101
501
'r' not found.
'f' not found.
301

Le code sous le bloc except sera exécuté si une exception KeyError se produit.

Vaibhav Vaibhav avatar Vaibhav Vaibhav avatar

Vaibhav is an artificial intelligence and cloud computing stan. He likes to build end-to-end full-stack web and mobile applications. Besides computer science and technology, he loves playing cricket and badminton, going on bike rides, and doodling.

Article connexe - Python Error