Apprenez en lisant dans l'ordre

Comment utiliser les dictionnaires Python (dict)

Apprends à utiliser le type dict en Python pour gérer des paires clé-valeur et récupérer, ajouter ou supprimer des données.

Créer un dictionnaire

Un dictionnaire (dict) est un type qui stocke des valeurs sous forme de paires clé-valeur.

Là où une liste est une boîte dont on extrait les valeurs par position (0, 1, 2…), un dict est une boîte dont on extrait les valeurs par nom (clé) — c'est le modèle mental le plus simple.

Structure d'un dictionnaire
"brand""Toyota""model""Prius""year"2015lié àlié àlié à

Encadre avec { } et liste les paires clé : valeur séparées par des virgules.

La clé est le nom, la valeur est le contenu. Les clés doivent être uniques.

# Déclarer un dictionnaire
car = {
    "brand": "Toyota",
    "model": "Prius",
    "year": 2015,
}

print(car)            # {'brand': 'Toyota', 'model': 'Prius', 'year': 2015}
print(type(car))      # <class 'dict'>

# Les clés ne sont pas obligées d'être des chaînes (les nombres marchent aussi)
score_by_id = {1: 80, 2: 95, 3: 72}
print(score_by_id[2]) # 95

Quand utiliser list ou dict

Si l'ordre ou la position compte, utilise list. Si tu veux accéder aux données par nom, utilise dict.

Par exemple, « un classement de 3 scores » est une list ; « les scores par utilisateur » est un dict.

Pour les mêmes données, la façon dont tu veux y accéder décide du choix.

Gère un profil utilisateur avec un dictionnaire.

① Crée un dict user avec ces 3 paires clé-valeur :

- "name" : "Alice"

- "age" : 28

- "email" : "alice@example.com"

② Utilise user["name"] pour afficher le nom et user["age"] pour afficher l'âge avec print().

Éditeur Python

Exécuter le code pour voir le résultat

Accéder aux valeurs — [] vs .get()

Il y a deux façons d'extraire une valeur d'un dict, et la différence clé est leur comportement quand la clé n'existe pas.

Différence entre [] et .get()
car["color"](absente)[ ]KeyErrorlevéecar.get("color").get()Renvoie None(sans erreur)accèssi absenteaccèssi absente

Essaie d'extraire une clé inexistante du dict car avec [] pour voir ce qui se passe.

① Affiche car["brand"] avec print().

② Affiche car["color"] avec print() et constate que KeyError est levée.

Éditeur Python

Exécuter le code pour voir le résultat

.get() te permet de passer une valeur par défaut en second argument — c'est le côté pratique.

Tu peux dire « renvoie ceci si la clé n'est pas là » en une seule ligne.

car = {"brand": "Toyota", "model": "Prius", "year": 2015}

# ① Accès avec []
print(car["brand"])        # Toyota
# print(car["color"])      # KeyError: 'color'

# ② Accès avec .get()
print(car.get("brand"))              # Toyota
print(car.get("color"))              # None
print(car.get("color", "Inconnu"))  # Inconnu (le second argument est renvoyé)

.get() pour continuer, [] pour rester strict

Si une clé absente signifie que quelque chose est cassé, [] est plus sûr — il fait remonter le problème tôt sous forme d'erreur.

Si les deux cas sont acceptables (par ex. réglages optionnels), passer une valeur par défaut à .get() se lit mieux et réduit la gestion d'exceptions (couverte plus tard).

Un dict de réglages utilisateur config = {"theme": "dark", "lang": "fr"} est prêt.

① Récupère le thème actuel avec config["theme"] et affiche-le.

② Utilise .get() pour récupérer "font_size", en utilisant 16 comme valeur de repli s'il n'est pas défini.

Éditeur Python

Exécuter le code pour voir le résultat

Ajouter, mettre à jour, supprimer

Les dicts, comme les listes, peuvent être modifiés après leur création.

La façon la plus simple d'ajouter, de mettre à jour et de supprimer est l'affectation directe.

ActionSyntaxePoint clé
Ajouter ou mettre à jourd["key"] = valeurMet à jour si la clé existe, ajoute sinon
Mettre à jour plusieurs à la foisd.update(autre_dict)Écrase les clés en commun, ajoute les nouvelles
Extraire et supprimerv = d.pop("key")Supprime et stocke la valeur. Clé absente lève KeyError
Viderd.clear()L'objet dict reste, son contenu est vidé
Supprimer la variabledel dSupprime d lui-même. Les références ultérieures lèvent une erreur
Comportement de d[key] = value
car(sans "color")car["color"]= "white"Ajoutécar(avec "year")car["year"]= 2024Écraséaffecterclé absenteaffecterclé présente

La même syntaxe ajoute si la clé est absente et met à jour si elle est présente.

Le dict décide « créer si absente, écraser si présente » à ta place.

car = {"brand": "Toyota", "model": "Prius", "year": 2015}

# Ajouter (nouvelle clé)
car["color"] = "white"
print(car)
# {'brand': 'Toyota', 'model': 'Prius', 'year': 2015, 'color': 'white'}

# Mettre à jour (clé existante)
car["year"] = 2024
print(car["year"])   # 2024

# Mettre à jour plusieurs à la fois
car.update({"country": "JP", "model": "Camry"})
print(car["model"])    # Camry (écrasé)
print(car["country"])  # JP (nouvellement ajouté)

# Extraire et supprimer
old_year = car.pop("year")
print(old_year)        # 2024
# print(car["year"])   # KeyError (supprimée maintenant)

# Vider
car.clear()
print(car)             # {}

Modifie un dict d'informations utilisateur.

user = {"name": "Alice", "age": 28} est prêt.

① Mets à jour "age" à 29.

② Ajoute "email": "alice@example.com" comme nouvelle entrée.

③ Utilise update() pour appliquer "country": "JP" et "age": 30 d'un coup, puis affiche le user final.

Éditeur Python

Exécuter le code pour voir le résultat

Lister les clés/valeurs & vérifier l'existence

Pour finir : les outils pour inspecter un dict.

Il y en a 4 principaux — keys() / values() / items() / l'opérateur in.

  • keys() — renvoie la liste des clés (dict_keys(['brand', 'model', ...]))
  • values() — renvoie la liste des valeurs
  • items() — renvoie la liste des paires clé-valeur (habituellement couplée à une boucle for)
  • "clé" in dict — renvoie True / False selon que la clé existe ou non
Les 4 outils en un coup d'œil
car.keys()liste des cléscar.values()liste des valeurscar.items()liste des paires"clé"in carTrue /False

Même dict, appels différents selon ce que tu veux extraire.

keys / values / items renvoient des listes ; in renvoie True / False.

car = {"brand": "Toyota", "model": "Prius", "year": 2015}

print(car.keys())     # dict_keys(['brand', 'model', 'year'])
print(car.values())   # dict_values(['Toyota', 'Prius', 2015])
print(car.items())    # dict_items([('brand', 'Toyota'), ...])

# Vérifier l'existence d'une clé (typiquement combiné avec if)
print("brand" in car)  # True
print("color" in car)  # False

if "brand" in car:
    print("Marque : " + car["brand"])
else:
    print("Pas d'info sur la marque")

Combiner for avec items() (référence)

Pour itérer sur un dict élément par élément, la forme standard est for key, value in car.items():.

On verra for dans un chapitre ultérieur, donc on ne plonge pas en profondeur ici — mais retiens juste ceci : items() te permet d'extraire la clé et la valeur ensemble.

À partir de la liste de stock stock = {"apple": 5, "banana": 0, "grape": 12}, écris du code qui vérifie si un fruit donné est en stock et liste les clés.

① Utilise in pour vérifier si "banana" est une clé dans stock et affiche le résultat.

② Pour target = "lemon", affiche "{fruit} en stock : {nombre}" s'il existe, sinon "Non disponible" (le modèle if est dans les commentaires).

③ Utilise stock.keys() pour récupérer uniquement les clés, encadre avec list() et affiche le résultat (la liste des noms de fruits).

Éditeur Python

Exécuter le code pour voir le résultat

Dans cet article, tu as appris comment déclarer un dict, comment [] et .get() diffèrent à l'accès, comment ajouter, mettre à jour et supprimer des entrées, et comment vérifier l'existence d'une clé et lister le contenu.

Les dicts apparaissent partout dans le travail réel — infos utilisateur, réglages, stock, résultats de synthèse. Une fois que tu as intériorisé l'image d'une boîte que l'on consulte par clé, tu te sentiras chez toi avec le traitement de données qui vient ensuite.

QUIZ

Vérification des connaissances

Répondez à chaque question une par une.

Question 1Pour d = {"a": 1, "b": 2}, lequel ne lève pas d'erreur lorsque tu accèdes à une clé absente ?

Question 2Après avoir exécuté d["a"] = 2 sur d = {"a": 1}, que vaut d ?

Question 3Quelle méthode renvoie la liste des clés ?