Question 1Pour d = {"a": 1, "b": 2}, lequel ne lève pas d'erreur lorsque tu accèdes à une clé absente ?
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.
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.
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.
.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).
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.
| Action | Syntaxe | Point clé |
|---|---|---|
| Ajouter ou mettre à jour | d["key"] = valeur | Met à jour si la clé existe, ajoute sinon |
| Mettre à jour plusieurs à la fois | d.update(autre_dict) | Écrase les clés en commun, ajoute les nouvelles |
| Extraire et supprimer | v = d.pop("key") | Supprime et stocke la valeur. Clé absente lève KeyError |
| Vider | d.clear() | L'objet dict reste, son contenu est vidé |
| Supprimer la variable | del d | Supprime d lui-même. Les références ultérieures lèvent une erreur |
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) # {}
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
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.
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.
Vérification des connaissances
Répondez à chaque question une par une.
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 ?