les dictionnaires associent des clés immuables à des valeurs. c’est la structure reine pour représenter des enregistrements.
objectifs
- créer, lire, mettre à jour et supprimer des paires clé/valeur
- parcourir
keys(),values(),items() - utiliser
get,setdefault,update, l’opérateur| - gérer des structures imbriquées (dicts de dicts/listes)
explication détaillée
clés typiques : str, int, tuples immuables. méthodes fréquentes :
d.get(k, default)pour récupérer sansKeyErrord.setdefault(k, default)pour initialiser si absent- fusion :
d1 | d2(py3.9+) oud.update(...) - suppression :
pop(k, default),del d[k]
exemples exécutables
user = {"name": "ana", "age": 30}
print(user["name"])
print(user.get("city", "n/a"))
user["age"] = 31
user["city"] = "paris"
print(user)
# parcours
for k, v in user.items():
print(k, v)
# setdefault pour regrouper
by_len = {}
for w in ["a", "bb", "c", "dd"]:
by_len.setdefault(len(w), []).append(w)
print(by_len) # {1: ['a','c'], 2: ['bb','dd']}
# fusion non destructive
a = {"x": 1}
b = {"y": 2}
merged = a | b
print(merged)
# dict imbriqué
record = {"id": 1, "name": {"first": "ana", "last": "silva"}, "tags": ["py", "data"]}
print(record["name"]["first"], record["tags"][0])
bonnes pratiques
- utilisez
getquand une clé peut manquer - évitez de muter profondément sans vérifier l’existence des niveaux
- copiez (
dict(d)oud.copy()) si vous ne voulez pas modifier l’original
pièges courants
KeyErroren accédant à une clé absente → préférezgetou testezin- confusion entre références partagées dans les valeurs (listes mutables)
- écraser des clés lors d’une fusion non contrôlée
exercices
- construire un index
{initiale: [mots...]}à partir d’une liste de mots. - inverser
{clé: valeur}simple en{valeur: clé}. - compter les occurrences de mots d’une phrase (séparer sur espaces et ponctuation simple).
- fusionner deux dicts
configen priorisant le second.