English | 简体中文 | 繁體中文 | Русский язык | Français | Español | Português | Deutsch | 日本語 | 한국어 | Italiano | بالعربية

Gérer les clés manquantes dans un dictionnaire Python

En Python, il y a un conteneur appelé dictionnaire. Dans le dictionnaire, nous pouvons mapper une clé à sa valeur. L'utilisation du dictionnaire permet d'accéder aux valeurs en temps constant. Mais si la clé donnée n'existe pas, des erreurs peuvent survenir.

Dans cette section, nous verrons comment traiter de tels erreurs. Si nous essayons d'accéder à une clé perdue, nous pourrions obtenir une telle erreur.

Code d'exemple

country_dict = {'India': 'IN', 'Australia': 'AU', 'Brazil': 'BR'}
print(country_dict['Australia'])
print(country_dict['Canada']) # This will return error

Résultat de la sortie

AU
---------------------------------------------------------------------------
KeyErrorTraceback (most recent call last)
<ipython-input-2-a91092e7ee85> in <module>()
      2 
      3 print(country_dict['Australia'])
----> 4 print(country_dict['Canada'])# This will return error
KeyError: 'Canada'

Utilisationget()Méthode gère KeyError

Nous pouvons utiliser la méthode get pour vérifier la clé. Cette méthode a deux paramètres. Le premier est la clé, le second est la valeur par défaut. Une fois la clé trouvée, elle retournera la valeur associée à la clé, mais si la clé n'existe pas, elle retournera la valeur par défaut, qui est transmise en tant que second paramètre.

Code d'exemple

country_dict = {'India': 'IN', 'Australia': 'AU', 'Brazil': 'BR'}
print(country_dict.get('Australia', 'Non trouvé'))
print(country_dict.get('Canada', 'Non trouvé'))

Résultat de la sortie

AU
Non trouvé

Utilisationsetdefault()Méthode gère KeyError

Lasetdefault()Méthode similaire àget()Méthode. Elle nécessite également deux paramètres, par exempleget()。Le premier est la clé, le second est la valeur par défaut. La seule différence de cette méthode est qu'elle ajoute une nouvelle clé avec une valeur par défaut lorsqu'il manque la clé.

Code d'exemple

country_dict = {'India': 'IN', 'Australia': 'AU', 'Brazil': 'BR'}
country_dict.setdefault('Canada', 'Non présent') # Définir une valeur par défaut pour le Canada
print(country_dict['Australia'])
print(country_dict['Canada'])

Résultat de la sortie

AU
Non présent

Utilisation de defaultdict

defaultdict est un conteneur. Il se trouve dans le module collections de Python. defaultdict utilise l'usine par défaut comme paramètre. Au départ, l'usine par défaut est définie sur 0 (entier). Si la clé n'existe pas, elle renvoie la valeur de l'usine par défaut.

Nous n'avons pas besoin de spécifier à nouveau la méthode à plusieurs reprises, donc elle fournit des méthodes plus rapides pour les objets dictionnaire.

Code d'exemple

import collections as col
# Définir l'usine par défaut avec la chaîne 'key not present'
country_dict = col.defaultdict(lambda: 'Clé non présente')
country_dict['India'] = 'IN'
country_dict['Australia'] = 'AU'
country_dict['Brazil'] = 'BR'
print(country_dict['Australia'])
print(country_dict['Canada'])

Résultat de la sortie

AU
Clé non présente