dict. setdefault()
Renvoie la valeur d’une clé, et commence par enregistrer une valeur par défaut dans le dictionnaire quand la clé est absente.
- Renvoie
- La valeur de la clé après l’appel : celle qui existait déjà, ou celle qui vient d’être insérée.
- Modifie l’original
- Oui
Exemple
#settings = {"theme": "dark"}
print(settings.setdefault("theme", "light"))
print(settings.setdefault("lang", "fr"))
print(settings)Définition et utilisation
#La méthode setdefault(key, default) fonctionne comme get(), à une différence près : quand la clé est absente, elle l’insère dans le dictionnaire avec la valeur par défaut, et ne la renvoie qu’ensuite. Quand la clé existe, elle renvoie sa valeur et ne change rien.
Elle sert le plus souvent à regrouper des données. Écrire groups.setdefault(key, []).append(item) crée une liste vide la première fois qu’une clé apparaît, et ajoute à la liste existante à chaque occurrence suivante. Tout cela tient sur une seule ligne.
La valeur par défaut est créée à chaque appel, même quand la clé existe. Pour un regroupement intensif, collections.defaultdict est en général plus clair et plus rapide, puisqu’il ne crée les valeurs que quand elles sont vraiment nécessaires.
Syntaxe
#dictionnaire.setdefault(key, default=None)Paramètres
#key
une clé du dictionnaire
La clé à lire ou à ajouter.default
optionnel, par défaut None
La valeur insérée quand la clé est absente.
Plus d’exemples
#topics = [
("HTML", "balises"),
("CSS", "flexbox"),
("HTML", "formulaires"),
("CSS", "grid"),
]
by_course = {}
for course, topic in topics:
by_course.setdefault(course, []).append(topic)
print(by_course)Bonnes pratiques
#- Pour regrouper de nombreux éléments, pensez à
defaultdict(list). Le code est plus court, et une liste vide n’est pas créée à chaque appel. - Si vous voulez seulement lire une valeur avec un repli, sans l’enregistrer dans le dictionnaire, utilisez
get().
Entrées associées
#Vous voyez une erreur ou il manque un exemple ? Écrivez-nous.