Menu

Dictionnaires Python : créer, accéder, mettre à jour et itérer un dict

Les dictionnaires sont la structure de recherche clé-valeur de Python — le type de données que tu utiliseras sans arrêt une fois passées les bases.

Cette page contient des éditeurs exécutables — modifiez, exécutez et voyez la sortie instantanément.

Un dictionnaire est une table de correspondance

Les listes sont indexées par position. Les dictionnaires sont indexés par clé — généralement une chaîne ou un nombre — et chaque clé correspond à une valeur. Ce seul changement ouvre une énorme catégorie de programmes : inventaires, configs, payloads JSON, profils utilisateurs, caches.

Les clés et les valeurs peuvent être à peu près n'importe quoi. Les clés doivent être hashables (donc : nombres, chaînes, tuples ; pas listes ni autres dicts). Les valeurs n'ont aucune restriction — un dict peut contenir n'importe quoi, y compris d'autres dicts ou listes.

Créer des dictionnaires

Plusieurs façons, chacune avec sa place :

Lire des valeurs

Deux façons, et le choix compte :

Choisis selon l'intention :

  • Utilise [] quand la clé doit être là. Si elle n'y est pas, c'est un bug et tu veux l'erreur bruyante.
  • Utilise .get() quand « pas présent » est un cas valide. Ça te permet d'écrire des valeurs par défaut sans try/except.

Ajouter, mettre à jour, supprimer

Affecter une clé la crée ou la met à jour :

update() fusionne un autre dict ou un itérable de paires :

Les clés partagées dans overrides écrasent celles de settings.

Vérifier une clé

in vérifie les clés, pas les valeurs :

Pour vérifier spécifiquement les valeurs, utilise user.values() :

Comment itérer un dictionnaire

Tu as trois vues sur lesquelles boucler :

.items() est ce que tu utiliseras la plupart du temps — ça te donne la paire, déballée, prête à l'emploi.

L'ordre d'itération en Python moderne (3.7+) correspond à l'ordre d'insertion. Un dict n'est pas un « sac magique » — si tu ajoutes a puis b puis c, l'itération te les renvoie dans cet ordre. C'est une garantie du langage sur laquelle tu peux compter.

Comment trier un dictionnaire

Les dictionnaires préservent l'ordre d'insertion, donc « trier » un dict veut vraiment dire construire un nouveau dict dont les clés sont insérées dans l'ordre voulu :

sorted() renvoie une liste de paires ; l'envelopper dans dict(...) reconstruit un dictionnaire avec le nouvel ordre. Si tu n'as besoin que des paires triées (pas d'un dict), saute l'appel externe à dict().

Comment fusionner deux dictionnaires

Python 3.9+ te donne l'opérateur | :

Les valeurs du dict de droite gagnent en cas de collision de clés. .update() est l'équivalent sur place. Sur les anciennes versions de Python, utilise {**defaults, **overrides}.

Le motif setdefault

Un besoin courant : « si la clé est là, utilise sa valeur ; sinon, mets un défaut puis utilise-le. »

Ou, mieux, utilise collections.Counter :

Counter est une sous-classe de dict qui compte par défaut. C'est le bon choix dès que tu comptes des occurrences.

Compréhensions de dictionnaire

Parallèle aux compréhensions de liste, mais pour construire des dicts :

Mêmes règles que les compréhensions de liste, mais avec key: value entre les accolades.

Le dict, jumeau de JSON

Les dicts Python correspondent presque exactement aux objets JSON. Convertir entre les deux est un seul appel :

C'est pourquoi les dicts apparaissent partout dans le travail web — tes requêtes et réponses d'API sont essentiellement de la manipulation de dict avec un peu de réseau entre les deux.

Un exemple pratique

Un petit programme de type config qui suit un profil utilisateur :

Dicts imbriqués, valeurs mutables, .get() avec un défaut — l'outillage de base pour toute donnée en forme d'enregistrement.

On avance

Listes, tuples, sets, dicts. Avec ces quatre collections en main, tu peux modéliser presque toute donnée que tu rencontreras au début. Ensuite, on apprendra la compréhension de liste — la façon compacte de Python de transformer une collection en une autre.

Questions fréquentes

Qu'est-ce qu'un dictionnaire en Python ?

Un dictionnaire est une collection de paires clé-valeur. Tu cherches une valeur par sa clé — prices['apple'] au lieu de prices[0]. Les dictionnaires sont rapides à lire et à écrire, les clés doivent être uniques, et en Python moderne ils préservent l'ordre dans lequel tu as inséré les éléments.

Comment ajouter une clé à un dictionnaire Python ?

Affecte-lui une valeur : my_dict['new_key'] = 'new value'. Si la clé existe déjà, la valeur est écrasée. Sinon, elle est ajoutée. Il n'y a pas de distinction entre « insérer » et « mettre à jour » — c'est la même syntaxe.

Quelle est la différence entre dict[key] et dict.get(key) ?

dict[key] lève KeyError si la clé n'est pas là. dict.get(key) renvoie None (ou une valeur par défaut que tu fournis) à la place. Utilise .get() quand les clés absentes sont attendues et normales ; utilise [key] quand une clé absente est un bug.

Coddy programming languages illustration

Apprendre à coder avec Coddy

COMMENCER