Les tableaux associatifs
Supplément du cours 7 - la suite de « Des casiers aux tableaux »
Photo : pilulier de la semaine, tirée d'une recherche d'images (« pill box monday tuesday »)
Mercredi matin, combien de comprimés faut-il prendre ?
Personne ne compte « dimanche 0, lundi 1, mardi 2, mercredi 3 » pour trouver le casier numéro 3.
On lit l'étiquette, et on ouvre le casier mercredi.
La semaine dans une liste : il faut se souvenir que mercredi, c'est le casier 3
La même semaine dans un pilulier : le casier porte son nom
L'étiquette sur la face, le contenu dans le casier.
{ } et le deux-points clé: valeur les associent.Code
Résultat
Entre les crochets : l'étiquette (une chaîne), jamais un numéro.
Avant
Après : même étiquette, nouveau contenu
Avant d'ouvrir, on vérifie que l'étiquette existe avec in :
« Lundi » et « lundi » sont deux étiquettes différentes : une majuscule suffit pour manquer le casier.
Entrée, plat, breuvage, dessert
Les valeurs ne sont pas obligatoirement des nombres : ici, ce sont des chaînes.
Une nouvelle étiquette : Python colle un nouveau casier au plateau. Pas besoin d'append.
pop(clé) retire le casier qui porte cette étiquette (il contenait "lait"). del repas["breuvage"] fait la même chose.
Chaque exemple part du plateau d'origine. Personne ne « recule d'un cran » : il n'y a pas de numéros à décaler.
Le for donne les étiquettes ; pilulier[jour] ouvre le casier.
items() donne les deux à chaque tour : la clé dans service, la valeur dans mets.
Résultat
Photo : pilulier jour par moment, tirée d'une recherche d'images (« pill box monday tuesday »)
| "dimanche" | "lundi" | "mardi" | "mercredi" | "jeudi" | "vendredi" | "samedi" | |
|---|---|---|---|---|---|---|---|
| "matin" | 1 | 1 | 1 | 2 | 1 | 1 | 0 |
| "midi" | 0 | 1 | 0 | 0 | 1 | 0 | 0 |
| "soir" | 1 | 1 | 1 | 1 | 1 | 2 | 1 |
semaine["mercredi"] ouvre la rangée du mercredi : c'est elle-même un pilulier, {"matin": 2, "midi": 0, "soir": 1}.
Puis ["soir"] ouvre le casier du soir : 1. Le jour, puis le moment : comme la tablette, puis la porte du meuble.
Avant de cliquer, prédisez ce que donne chaque expression, puis cliquez sur un casier pour l'ouvrir :
repas["dessert"]repas["entrée"]"breuvage" in repas et "soupe" in repas (le piège : in lit les étiquettes)Pour chaque situation, quelle structure choisir : une liste ou un dictionnaire ?
pilulier["mercredi"] lit, pilulier["samedi"] = 2 remplace.pop(clé) ou del le retire.KeyError : vérifier avec clé in dictionnaire (majuscules comprises).for clé in d donne les étiquettes, d.items() les paires.semaine["mercredi"]["soir"] : un dictionnaire de dictionnaires.