Combien reste-t-il de REF-310 ?
Un client appelle le service commercial. Il veut savoir s’il reste des lampes REF-310 en stock.
L’entrepôt gère 20 000 références. Personne ne veut les lire une par une pendant que le client attend.
Avec la bonne structure de données, la réponse arrive tout de suite.
À la fin de cette leçon
Remarque
Je peux retrouver une valeur à partir de sa clé.
Mots-clés
| Mot | Ce que ça veut dire | Exemple |
|---|---|---|
| Dictionnaire | des paires clé et valeur | {"REF-310": 12} |
| Clé | ce qui sert à chercher | "REF-310" |
| Valeur | ce qu’on retrouve grâce à la clé | 12 |
| in | teste si une clé existe | "REF-310" in stock |
| Ensemble | des valeurs sans doublon | set(clients) |
| KeyError | l’erreur d’une clé absente |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Une clé mène à sa valeur
Un dictionnaire range des paires. Chaque paire a une clé et une valeur.
On l’écrit entre accolades : {"REF-310": 12}. La clé est avant les deux-points, la valeur après.
Pour lire une valeur, on donne la clé entre crochets : stock["REF-310"]. Pour la changer, on lui donne une nouvelle valeur.
À vous : le stock de l’entrepôt
# Le stock de l'entrepôt : la référence donne la quantité.
stock = {"REF-101": 40, "REF-205": 0, "REF-310": 12}
print("Quantité de REF-310 :", stock["REF-310"])
# Un carton de 25 arrive pour REF-205.
stock["REF-205"] = stock["REF-205"] + 25
# Un nouveau produit entre au catalogue.
stock["REF-412"] = 8
print(stock)
# Affichez la quantité de REF-412.
Exemple travaillé : le stock
| Clé | Valeur avant | Instruction | Valeur après |
|---|---|---|---|
| REF-101 | 40 | aucune | 40 |
| REF-205 | 0 | stock["REF-205"] = 0 + 25 | 25 |
| REF-310 | 12 | aucune | 12 |
| REF-412 | absente | stock["REF-412"] = 8 | 8 |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Pourquoi la recherche par clé est rapide
Pensez au vestiaire d’un théâtre. Votre ticket porte le numéro 214. L’employé va droit au crochet 214.
Un dictionnaire fait pareil. Python calcule, à partir de la clé, l’endroit où la valeur est rangée.
Avec une liste de 20 000 éléments, il faut parfois lire les 20 000. Avec un dictionnaire, une seule recherche suffit, même avec un million de clés.
Un ensemble garde chaque valeur une fois
Un ensemble est comme un dictionnaire sans valeurs : il ne garde que des clés.
Il n’accepte pas les doublons. set(clients) garde chaque client une seule fois.
Le test in y est aussi rapide que dans un dictionnaire. On s’en sert pour savoir si un client est déjà connu, ou pour compter des valeurs différentes.
À vous : codes postaux et clients
codes = {"75011": "Paris", "69003": "Lyon", "13001": "Marseille", "31000": "Toulouse"}
code = "69003"
if code in codes:
print(code, "correspond à", codes[code])
else:
print("Code inconnu :", code)
# Les clients qui ont commandé cette semaine, avec des doublons.
clients = ["Martin", "Bernard", "Martin", "Petit", "Bernard"]
uniques = set(clients)
print("Clients différents :", len(uniques))
# Essayez le code 33000, puis exécutez.
Une erreur fréquente
Attention
Beaucoup pensent qu’un dictionnaire peut garder deux fois la même clé. C’est faux : une clé est unique. Si vous donnez une valeur à une clé qui existe, l’ancienne valeur est remplacée. Pour additionner, lisez d’abord l’ancienne valeur.