Dictionnaires en Python
1. Qu’est-ce qu’un dictionnaire ?
Un dictionnaire (type dict) est une structure de données associatives.
Il permet de lier une clé à une valeur, un peu comme une table de correspondance ou un répertoire.
🔑 Chaque clé est unique et permet d’accéder rapidement à sa valeur associée.
Exemple d’usage courant : associer le nom d’un élève à sa note.
notes = {'Nathan': 18, 'Julie': 15, 'Ali': 20}2. Création d’un dictionnaire
a. Syntaxe de base
d = {
'nom': 'Nathan',
'âge': 20,
'ville': 'Paris'
}- Les clés sont à gauche des deux-points (
:)
- Les valeurs sont à droite
- Les paires sont séparées par des virgules
b. Dictionnaire vide
d = {}3. Accès et modification des valeurs
print(d['nom']) # affiche 'Nathan'
d['âge'] = 21 # modifie la valeur associée à la clé 'âge'⚠️ Si la clé n’existe pas, une erreur KeyError est levée.
4. Ajouter une nouvelle paire clé/valeur
d['pays'] = 'France'Python ajoute la nouvelle entrée s’il ne trouve pas la clé.
5. Supprimer une entrée
del d['ville']⚠️ Cela supprime complètement la paire clé: valeur.
6. Vérifier la présence d’une clé
if 'nom' in d:
print("Nom présent")7. Obtenir une valeur sans erreur : get()
valeur = d.get('poids', 0) # retourne 0 si 'poids' n’existe pasTrès utile pour éviter les erreurs sur les clés absentes.
8. Parcours d’un dictionnaire
a. Parcours des clés
for cle in d:
print(cle)ou
for cle in d.keys():
print(cle)b. Parcours des valeurs
for valeur in d.values():
print(valeur)c. Parcours des paires (clé + valeur)
for cle, valeur in d.items():
print(cle, "=>", valeur)📌 Le plus utile pour traiter toutes les données du dictionnaire.
9. Fonctions et méthodes utiles
| Méthode / fonction | Description |
len(d) | Renvoie le nombre de paires |
d.keys() | Retourne toutes les clés |
d.values() | Retourne toutes les valeurs |
d.items() | Retourne toutes les paires (clé, valeur) |
d.get(cle, defaut) | Renvoie la valeur si présente, sinon defaut |
'cle' in d | Teste la présence d'une clé |
10. Rappels importants pour le bac
a. Les clés doivent être immuables
Cela signifie que les clés doivent être des entiers, chaînes, tuples (non modifiables) — mais jamais des listes.
d = {(1, 2): "ok"} # ✅ tuple immuable
d = {[1, 2]: "no"} # ❌ erreur : liste non hachableb. Les clés sont uniques
Si vous redéclarez une clé, elle écrasera la précédente :
d = {'x': 1, 'x': 2} # Résultat : {'x': 2}11. Dictionnaire comme table d'association
Les dictionnaires sont souvent utilisés comme tables de correspondance.
Exemples :
- Associer noms et notes :
notes = {'Alice': 15, 'Bob': 18}
- Compter des fréquences :
texte = "bonjour bonjour salut" freqs = {} for mot in texte.split(): freqs[mot] = freqs.get(mot, 0) + 1 # Résultat : {'bonjour': 2, 'salut': 1}
12. Cas particuliers utiles
a. Itérer dans un dictionnaire trié (par clé)
for cle in sorted(d):
print(cle, d[cle])b. Suppression sécurisée : pop()
valeur = d.pop('ville', 'non trouvé')
print(valeur)✅ pop() supprime et renvoie la valeur associée à la clé.
- Si la clé existe : elle est retirée du dictionnaire, et sa valeur est retournée.
- Si la clé n’existe pas :
- Sans valeur par défaut : erreur
KeyError
- Avec valeur par défaut : retourne cette valeur
- Sans valeur par défaut : erreur
Exemples :
d = {'nom': 'Nathan', 'âge': 17}
val = d.pop('âge') # val = 17, d devient {'nom': 'Nathan'}
val = d.pop('ville', 'inconnu') # val = 'inconnu', d reste inchangé💡 Résumé à connaître :
del d['clé']→ supprime sans retour
pop('clé')→ supprime et renvoie la valeur
pop('clé', defaut)→ renvoiedefautsi la clé est absente
13. Comparaison avec les listes
| Opération | Liste | Dictionnaire |
| Accès par position | lst[0] | ❌ Pas possible |
| Accès rapide à une valeur | ❌ lent (parcourir tout) | ✅ rapide (d['clé']) |
| Organisation en ordre | ✅ | ❌ pas garanti (avant 3.7) |
| Association clé / valeur | ❌ non | ✅ oui |
🧠 À bien retenir pour le bac
✅ Les dictionnaires sont des structures associatives : une clé ➜ une valeur
✅ Les clés doivent être immuables (int, str, tuple)
✅ On modifie, ajoute, supprime une entrée facilement
✅ Pour éviter les erreurs de clés absentes, utilisez get()
✅ Le parcours avec items() est très utile : for cle, val in d.items()
✅ Très utiles pour compter, indexer, traduire, regrouper des données