Easier to read with cream paper, a tint, more contrast or larger text? Choose your colours and text, once, for every page.

Aperçu

Les dictionnaires, de l’intérieur

Voici la première page de la leçon. Lis-la et essaie les activités. La suite est dans le cours complet.

35 minutes

Le vestiaire du gymnase

Au gymnase, le vestiaire a des casiers numérotés. Le prof dit : « Ton nom donne ton numéro de casier. »

Pas besoin de tout fouiller. Tu calcules ton numéro, tu ouvres le casier, c’est là.

C’est ainsi qu’un dictionnaire retrouve une valeur très vite.

Mots-clés

MotCe que ça veut direExemple
DictionnaireUne structure qui retrouve une valeur à partir de sa clé.{"Lina": "0611"}
CléLe nom avec lequel on cherche. Elle est unique."Lina"
CasierUne case de la table où on range des paires.table[3]
Fonction de hachageUne fonction qui transforme une clé en numéro de casier.numero_casier("Lina", 5)
CollisionDeux clés qui tombent dans le même casier.Lina et Hugo : casier 3
Table de hachageLa table de casiers qui est le cœur d’un dictionnaire.cinq casiers

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

À toi : trouve le casier

À toi de jouer

À toi : trouve le casier

3 questions
Essayez : vos réponses sont notées ici puis oubliées. Connectez-vous si vous voulez conserver votre score et reprendre là où vous en étiez.Se connecter pour conserver mon score

Tes réponses sont corrigées ici et ne sont pas conservées. Un compte garde tes résultats.

De la clé au casier

Un dictionnaire garde ses paires dans une table de casiers. Pour savoir où ranger une clé, on calcule.

Voici un calcul simple : on additionne les codes des lettres. Puis on prend le reste de la division par le nombre de casiers.

Le reste est toujours entre 0 et le nombre de casiers moins un.

Exemple travaillé : calculer les casiers

CléSomme des codesDivision par 5Casier
Lina76 + 105 + 110 + 97 = 388388 = 5 × 77 + 33
Karim500500 = 5 × 100 + 00
Zoe302302 = 5 × 60 + 22
Hugo403403 = 5 × 80 + 33
Emma384384 = 5 × 76 + 44

Les cellules que les étudiants remplissent restent vides dans cet aperçu.

À toi : la fonction qui trouve le casier

Code: python
def numero_casier(cle, taille):
    total = 0
    for lettre in cle:
        total = total + ord(lettre)      # ord donne le code de la lettre
    return total % taille                # le reste de la division donne le casier


for nom in ["Lina", "Karim", "Zoe", "Hugo", "Emma"]:
    print(nom, "-> casier", numero_casier(nom, 5))

# Lina et Hugo tombent dans le même casier. On appelle cela une collision.

À toi : un reste à la main

À toi de jouer

À toi : un reste à la main

4 questions
Essayez : vos réponses sont notées ici puis oubliées. Connectez-vous si vous voulez conserver votre score et reprendre là où vous en étiez.Se connecter pour conserver mon score

Tes réponses sont corrigées ici et ne sont pas conservées. Un compte garde tes résultats.

La leçon continue

10 parties de plus de cette leçon se trouvent dans le cours complet, avec les exercices et la vérification finale. Un compte te donne tout.