Comment utiliser cette page

Cette page suit toujours le même plan : le vocabulaire, un exemple concret, les opérations de base, puis un algorithme complet avec une démonstration interactive, le code Python, et la complexité.

Utilisation de la démonstration
La démonstration avance uniquement quand vous cliquez sur « Suivant » ou « Précédent » : rien ne bouge tout seul. Un bouton « Lecture automatique » est disponible si vous préférez laisser les étapes défiler seules, à une vitesse que vous choisissez.

1. Vocabulaire à connaître avant de commencer

Chaque mot ci-dessous est utilisé exactement dans ce sens dans toute la page.

MotDéfinition précise
DictionnaireUne structure qui associe à chaque clé une valeur. Contrairement à un tableau, on n'accède pas à une valeur avec un numéro d'indice mais avec une clé.
CléL'élément qui sert à retrouver une valeur dans le dictionnaire (par exemple un mot, un nom, un numéro). Dans un même dictionnaire, deux clés sont toujours différentes l'une de l'autre.
ValeurLa donnée associée à une clé. Contrairement aux clés, deux valeurs peuvent très bien être identiques.
Paire clé-valeurL'association d'une clé et de sa valeur, écrite clé: valeur dans un dictionnaire Python.
Dictionnaire videUn dictionnaire qui ne contient encore aucune paire clé-valeur, noté {}.
Parcourir un dictionnaireExaminer, une par une, toutes les clés (ou toutes les valeurs, ou toutes les paires) d'un dictionnaire.
Test d'appartenance (in)Le test qui répond à la question « cette valeur est-elle une clé du dictionnaire ? » par Vrai ou par Faux.
KeyErrorL'erreur que Python déclenche si on essaie de lire d[clé] alors que cette clé n'existe pas dans le dictionnaire d.

2. L'exemple utilisé dans cette page

On utilise un dictionnaire nommé stock, qui associe à chaque fruit (la clé) la quantité disponible en stock (la valeur, un nombre entier) :

Dictionnaire d'exemple
stock = {"pomme": 12, "banane": 5, "poire": 8}

Ce dictionnaire contient 3 paires clé-valeur : la clé "pomme" est associée à la valeur 12, la clé "banane" à la valeur 5, et la clé "poire" à la valeur 8.

3. Les opérations de base sur un dictionnaire

3.1 — Tableau des opérations, sur l'exemple stock

OpérationCode PythonRésultat sur l'exemple
Créer un dictionnaire vided = {}{}
Créer un dictionnaire avec des valeursstock = {"pomme": 12, "banane": 5, "poire": 8}3 paires clé-valeur créées
Accéder à une valeur existantestock["pomme"]12
Accéder avec une valeur par défautstock.get("citron", 0)0 (car "citron" n'est pas une clé du dictionnaire)
Ajouter une nouvelle paire clé-valeurstock["citron"] = 4le dictionnaire contient maintenant "citron": 4
Modifier la valeur d'une clé existantestock["banane"] = 6stock["banane"] vaut maintenant 6
Tester si une valeur est une clé"poire" in stockTrue
Supprimer une paire clé-valeurdel stock["poire"]"poire" n'est plus une clé du dictionnaire
Connaître le nombre de paireslen(stock)3 (avant toute suppression)
Accéder à une clé qui n'existe pas
Écrire stock["citron"] alors que "citron" n'est pas encore une clé du dictionnaire déclenche une erreur KeyError, et le programme s'arrête. C'est pour cette raison qu'on utilise stock.get("citron", 0) (qui renvoie une valeur par défaut au lieu de faire planter le programme), ou qu'on teste d'abord "citron" in stock avant d'accéder à la valeur.

4. Parcourir un dictionnaire

On reprend stock = {"pomme": 12, "banane": 5, "poire": 8}, sans aucune suppression cette fois, pour illustrer les différentes façons de le parcourir :

InstructionCe qu'elle parcourtRésultat sur l'exemple
for cle in stock:chaque clé, une par une"pomme", puis "banane", puis "poire"
for cle in stock.keys():chaque clé (équivalent à la ligne précédente)"pomme", "banane", "poire"
for valeur in stock.values():chaque valeur, une par une12, 5, 8
for cle, valeur in stock.items():chaque paire clé-valeur en même temps("pomme", 12), ("banane", 5), ("poire", 8)
Ordre de parcours
Depuis la version 3.7 de Python, un dictionnaire conserve toujours l'ordre dans lequel les clés ont été ajoutées : parcourir stock donnera donc toujours "pomme", puis "banane", puis "poire", dans cet ordre.

4.1 — Code Python

stock = {"pomme": 12, "banane": 5, "poire": 8}for cle in stock:    print(cle, "->", stock[cle])for cle, valeur in stock.items():    print(cle, "->", valeur)

5. Algorithme : compter les occurrences des éléments d'une liste

5.1 — Principe, en une phrase

Principe
On parcourt la liste élément par élément : si l'élément est déjà une clé du dictionnaire, on ajoute 1 à sa valeur ; sinon, on crée une nouvelle clé associée à la valeur 1.

5.2 — Les étapes, dans l'ordre exact

  1. On part d'un dictionnaire vide : dico = {}.
  2. On prend le premier élément de la liste qui n'a pas encore été traité.
  3. On teste si cet élément est déjà une clé du dictionnaire, avec element in dico.
  4. Si c'est le cas, on ajoute 1 à la valeur déjà associée à cette clé.
  5. Sinon, on crée une nouvelle paire clé-valeur, avec la valeur 1.
  6. On répète les étapes 2 à 5 pour chaque élément suivant de la liste, jusqu'à ce qu'il n'y en ait plus.
  7. Le dictionnaire final associe à chaque élément distinct de la liste son nombre d'apparitions.

5.3 — Démonstration interactive

élément de la liste actuellement examiné nouvelle clé venant d'être créée valeur venant d'être mise à jour
Liste des achats, dans l'ordre où on les examine
Dictionnaire en construction
Étape 1 / 1
La ligne de code correspondant à l'étape en cours est surlignée ci-dessous.

5.4 — Code Python

def compter_occurrences(liste):    """Renvoie un dictionnaire {élément: nombre d'apparitions}."""    dico = {}    for element in liste:        if element in dico:            dico[element] = dico[element] + 1        else:            dico[element] = 1    return dico# Jeu de données : le même exemple que la démonstration ci-dessusachats = ["pomme", "banane", "pomme", "poire", "banane", "pomme"]print(compter_occurrences(achats))# Résultat affiché : {'pomme': 3, 'banane': 2, 'poire': 1}

6. Complexité des opérations sur un dictionnaire

7. Points clés à retenir

Prêt(e) pour la suite ? → Retour à l'accueil