Partie 3 : Les dictionnaires
1. Qu'est-ce qu'un dictionnaire ?
Section intitulée « 1. Qu'est-ce qu'un dictionnaire ? »1.1 Définition
Section intitulée « 1.1 Définition »Un dictionnaire est une collection non ordonnée de paires clé : valeur. Chaque clé est unique et permet d'accéder directement à sa valeur associée.
>>> eleve = {"nom": "Dupont", "prenom": "Marie", "age": 16}Contrairement aux tableaux (accès par indice numérique), les dictionnaires permettent un accès par nom (la clé).
1.2 Analogie
Section intitulée « 1.2 Analogie »Un dictionnaire Python fonctionne comme un dictionnaire classique :
| Dictionnaire classique | Dictionnaire Python |
|---|---|
| Le mot cherché | La clé |
| La définition trouvée | La valeur |
| On cherche par mot, pas par numéro de page | On accède par clé, pas par indice |
1.3 Syntaxe
Section intitulée « 1.3 Syntaxe »# Dictionnaire avec des accoladespersonne = { "nom": "Martin", "prenom": "Léo", "age": 17, "nsi": True}
# Dictionnaire videvide = {}
# Avec la fonction dict()point = dict(x=3, y=7) # {"x": 3, "y": 7}2. Accéder aux valeurs
Section intitulée « 2. Accéder aux valeurs »2.1 Lecture par clé
Section intitulée « 2.1 Lecture par clé »>>> eleve = {"nom": "Dupont", "prenom": "Marie", "age": 16}>>> eleve["nom"]'Dupont'>>> eleve["age"]16Si la clé n'existe pas, Python lève une erreur :
>>> eleve["classe"]KeyError: 'classe'Pour éviter l'erreur, on peut utiliser la méthode get() :
>>> eleve.get("classe") # renvoie None si absent>>> eleve.get("classe", "inconnue") # valeur par défaut'inconnue'2.2 Vérifier l'existence d'une clé
Section intitulée « 2.2 Vérifier l'existence d'une clé »>>> "nom" in eleveTrue>>> "classe" in eleveFalse3. Modifier un dictionnaire
Section intitulée « 3. Modifier un dictionnaire »3.1 Ajouter ou modifier une entrée
Section intitulée « 3.1 Ajouter ou modifier une entrée »Pour ajouter une nouvelle paire clé-valeur ou modifier une existante, on utilise la même syntaxe :
>>> eleve = {"nom": "Dupont", "prenom": "Marie"}
>>> eleve["age"] = 16 # ajout>>> eleve["classe"] = "1ere3" # ajout>>> eleve{'nom': 'Dupont', 'prenom': 'Marie', 'age': 16, 'classe': '1ere3'}
>>> eleve["age"] = 17 # modification>>> eleve["age"]173.2 Supprimer une entrée
Section intitulée « 3.2 Supprimer une entrée »>>> del eleve["classe"]>>> eleve{'nom': 'Dupont', 'prenom': 'Marie', 'age': 17}
>>> eleve.pop("age") # supprime et renvoie la valeur174. Parcourir un dictionnaire
Section intitulée « 4. Parcourir un dictionnaire »4.1 Parcours des clés
Section intitulée « 4.1 Parcours des clés »eleve = {"nom": "Dupont", "prenom": "Marie", "age": 16}
for cle in eleve: print(cle)Résultat :
nomprenomage4.2 Parcours des valeurs
Section intitulée « 4.2 Parcours des valeurs »for valeur in eleve.values(): print(valeur)Résultat :
DupontMarie164.3 Parcours des clés et valeurs
Section intitulée « 4.3 Parcours des clés et valeurs »for cle, valeur in eleve.items(): print(f"{cle} : {valeur}")Résultat :
nom : Dupontprenom : Marieage : 165. Construire un dictionnaire
Section intitulée « 5. Construire un dictionnaire »5.1 Construction progressive
Section intitulée « 5.1 Construction progressive »# Compter les occurrences de chaque lettretexte = "abracadabra"compteur = {}for lettre in texte: if lettre in compteur: compteur[lettre] += 1 else: compteur[lettre] = 1
print(compteur) # {'a': 5, 'b': 2, 'r': 2, 'c': 1, 'd': 1}5.2 Dictionnaire en compréhension
Section intitulée « 5.2 Dictionnaire en compréhension »Comme les tableaux, les dictionnaires peuvent se construire par compréhension :
# Carrés des nombres de 0 à 5>>> carres = {x: x ** 2 for x in range(6)}>>> carres{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25}
# Codes ASCII des lettres majuscules>>> ascii_maj = {chr(i): i for i in range(65, 91)}>>> ascii_maj["A"]655.3 Construire un dictionnaire à partir de deux listes
Section intitulée « 5.3 Construire un dictionnaire à partir de deux listes »cles = ["nom", "prenom", "age"]valeurs = ["Dupont", "Marie", 16]
eleve = dict(zip(cles, valeurs))print(eleve) # {'nom': 'Dupont', 'prenom': 'Marie', 'age': 16}6. Les clés : quels types ?
Section intitulée « 6. Les clés : quels types ? »Les clés d'un dictionnaire doivent être immuables :
| Type | Utilisable comme clé ? |
|---|---|
int | Oui |
float | Oui (mais déconseillé) |
str | Oui (le plus courant) |
tuple | Oui (si ses éléments sont immuables) |
list | Non (mutable) |
dict | Non (mutable) |
# Tuple comme clé (utile pour des coordonnées)grille = {}grille[(0, 0)] = "vide"grille[(1, 2)] = "pion"7. Dictionnaire vs Tableau
Section intitulée « 7. Dictionnaire vs Tableau »| Critère | Tableau (list) | Dictionnaire (dict) |
|---|---|---|
| Accès par | Indice (numérique) | Clé (nom) |
| Ordre | Oui (indices 0, 1, 2...) | Non garanti |
| Usage | Collections homogènes | Associations clé-valeur |
| Recherche | Lente (parcourir tout le tableau) | Rapide (accès direct par clé) |
| Exemple | Notes d'un élève | Fiche d'un élève |
7.1 Exemple comparatif
Section intitulée « 7.1 Exemple comparatif »Avec un tableau, il faut se souvenir des positions :
eleve = ["Dupont", "Marie", 16, "1ere3"]# eleve[0] = nom, eleve[1] = prenom... pas très lisibleAvec un dictionnaire, l'accès est explicite :
eleve = {"nom": "Dupont", "prenom": "Marie", "age": 16, "classe": "1ere3"}print(eleve["prenom"]) # clair et sans ambiguïté8. Tableaux de dictionnaires
Section intitulée « 8. Tableaux de dictionnaires »Un usage fréquent consiste à stocker une collection d'enregistrements sous forme de tableau de dictionnaires :
eleves = [ {"nom": "Dupont", "prenom": "Marie", "moyenne": 15.5}, {"nom": "Martin", "prenom": "Léo", "moyenne": 12.0}, {"nom": "Durand", "prenom": "Emma", "moyenne": 17.5}]
# Afficher les prénoms des élèves ayant plus de 14for e in eleves: if e["moyenne"] >= 14: print(e["prenom"])# Marie# EmmaCette structure ressemble à un tableau de données (comme un fichier CSV ou un tableur), chaque dictionnaire étant une ligne.
9. Résumé
Section intitulée « 9. Résumé »| Propriété | Dictionnaire (dict) |
|---|---|
| Syntaxe | {"cle": valeur, ...} |
| Accès | d["cle"] ou d.get("cle") |
| Ajout/modification | d["cle"] = valeur |
| Suppression | del d["cle"] ou d.pop("cle") |
| Test d'appartenance | "cle" in d |
| Parcours clés | for k in d: |
| Parcours valeurs | for v in d.values(): |
| Parcours clés + valeurs | for k, v in d.items(): |
| Compréhension | {k: v for k, v in ...} |
| Clés | Doivent être immuables (str, int, tuple) |
© 2026 Corentin Dupont - LyCode
Créé avec Astro Starlight