dict.get()

Renvoie la valeur d’une clé, ou une valeur par défaut quand la clé n’est pas dans le dictionnaire.

Renvoie
La valeur associée à la clé, ou default.
Modifie l’original
Non
Sur cette page

Exemple

#
Python
student = {"name": "Léa", "points": 1240}

print(student.get("name"))
print(student.get("level"))
print(student.get("level", 1))
print(student)
Résultatrésultat enregistré, vous pouvez le vérifier
Léa
None
1
{'name': 'Léa', 'points': 1240}

Définition et utilisation

#

La méthode get(clé) lit une valeur dans un dictionnaire à peu près comme les crochets, mais elle ne lève pas d’erreur quand la clé est absente. Au lieu d’une KeyError, elle renvoie None ou la valeur donnée comme second argument.

Elle convient donc bien aux données dont certains champs sont optionnels, par exemple les réglages d’un utilisateur ou les réponses d’une API. Écrire settings.get("theme", "dark") fixe tout de suite la valeur de repli.

La méthode se contente de lire et n’ajoute pas la clé manquante au dictionnaire. Si vous voulez aussi enregistrer la valeur par défaut, utilisez setdefault(). Gardez aussi à l’esprit que get() ne distingue pas une clé absente d’une clé dont la valeur est None. C’est à cela que sert l’opérateur in.

Syntaxe

#
Syntaxe
dictionnaire.get(key, default=None)

Paramètres

#
  • key

    une clé du dictionnaire

    La clé dont vous voulez lire la valeur.
  • default

    optionnel, par défaut None

    La valeur renvoyée quand la clé n’est pas dans le dictionnaire.

Plus d’exemples

#
Crochets ou get() ?
Python
settings = {"theme": "dark"}

try:
    print(settings["lang"])
except KeyError as error:
    print("KeyError:", error)

print(settings.get("lang", "fr"))
Résultatrésultat enregistré, vous pouvez le vérifier
KeyError: 'lang'
fr
Compter les réponses
Python
answers = ["B", "A", "B", "C", "B"]
counts = {}

for answer in answers:
    counts[answer] = counts.get(answer, 0) + 1

print(counts)
Résultatrésultat enregistré, vous pouvez le vérifier
{'B': 3, 'A': 1, 'C': 1}

Bonnes pratiques

#
  • Utilisez les crochets pour les clés qui doivent exister, car leur absence est un bug qu’il vaut la peine de remarquer. Réservez get() aux champs optionnels.
  • La valeur par défaut est évaluée avant même l’appel de la méthode, même quand la clé existe. Ne placez pas de calculs coûteux dans get() ; utilisez plutôt une condition avec in.
  • Pour compter des occurrences, collections.Counter est plus pratique, et collections.defaultdict pour regrouper.

Entrées associées

#

Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.