Le casier du lycée
Tu as un casier. Tu y mets ton sac, ta veste et tes livres. Le matin, tu veux ta veste tout de suite.
Si tout est en vrac, tu cherches longtemps. Si chaque chose a sa place, tu la prends en un geste.
Un programme fait pareil avec ses données. Bien les ranger, c’est le sujet de ce chapitre.
Mots-clés
| Mot | Ce que ça veut dire | Exemple |
|---|---|---|
| Structure de données | Une façon de ranger des valeurs, avec les gestes qu’on a le droit de faire. | Une liste, un dictionnaire |
| Usage | Ce qu’on veut faire des données. | Retrouver un numéro de téléphone |
| Opération | Un geste sur la structure : ajouter, retirer, chercher. | append |
| Clé | Le nom avec lequel on retrouve une valeur. | "Hugo" |
| Pile | Une structure où on retire le dernier arrivé. | Une pile d’assiettes |
| File | Une structure où on retire le premier arrivé. | La queue de la cantine |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
À toi : que choisirais-tu ?
À toi de jouer
À toi : que choisirais-tu ?
3 questionsTes réponses sont corrigées ici et ne sont pas conservées. Un compte garde tes résultats.
Une structure, ce sont des gestes
Ranger des valeurs ne suffit pas. Il faut dire quels gestes on peut faire.
Dans une liste, on lit la case 2. Dans une pile, on ne touche qu’au dessus. Dans un dictionnaire, on demande une clé.
On choisit la structure selon l’usage : ce qu’on fera le plus souvent.
À toi : chercher Hugo
# Un annuaire rangé en liste : il faut regarder les cases une par une.
annuaire_liste = [["Lina", "0611"], ["Karim", "0622"], ["Zoé", "0633"], ["Hugo", "0644"]]
position = 0
regards = 1
while annuaire_liste[position][0] != "Hugo":
position = position + 1
regards = regards + 1
print("Liste : Hugo trouvé après", regards, "regards, numéro", annuaire_liste[position][1])
# Le même annuaire rangé en dictionnaire : on demande le nom, la réponse arrive.
annuaire_dico = {"Lina": "0611", "Karim": "0622", "Zoé": "0633", "Hugo": "0644"}
print("Dictionnaire : un seul regard, numéro", annuaire_dico["Hugo"])
# Change "Hugo" en "Lina" dans les deux. Que se passe-t-il pour le nombre de regards ?
Exemple travaillé : compter les regards
| Structure | Cherche | Regards | Pourquoi |
|---|---|---|---|
| Liste | Lina | 1 | Elle est en case 0 |
| Liste | Karim | 2 | Il est en case 1 |
| Liste | Hugo | 4 | Il est en case 3, le dernier |
| Dictionnaire | Hugo | 1 | On donne la clé, on a la valeur |
| Dictionnaire | Lina | 1 | Même geste pour tous |
Les cellules que les étudiants remplissent restent vides dans cet aperçu.
Les six structures du chapitre
Dans ce chapitre, tu rencontres six façons de ranger.
La pile et la file gardent un ordre d’arrivée. La liste chaînée relie des maillons. Le dictionnaire retrouve par la clé.
L’arbre range en niveaux, comme les dossiers. Le graphe relie des points, comme un plan de métro.
À toi : une liste qui garde l’ordre
# Une liste garde l'ordre dans lequel on a rangé les choses.
musiques = ["Titre A", "Titre B", "Titre C"]
musiques.append("Titre D")
print("Dans l'ordre :", musiques)
print("La deuxième musique :", musiques[1])
# Pour une file de cantine ou un historique, on veut aussi savoir
# qui est sorti en premier ou en dernier. C'est le sujet des leçons suivantes.
dernier = musiques.pop()
print("On a retiré :", dernier, "et il reste", musiques)
# Ajoute deux titres à la liste puis retire-en un. Qui est parti ?
Pas de structure parfaite
Astuce
Aucune structure n’est la meilleure pour tout. Chacune est rapide pour un geste et lente pour un autre. Tout l’art est de choisir.