Aller au contenu

Les dictionnaires

Objectifs de la section

2-3 Manipulation de tableaux et dictionnaires de données

Temps requis

30 minutes


Sections 9.7

Un dictionnaire de données est une collection très utilisée (probablement la deuxième plus utilisée derrière les listes) similaire aux ensembles. La différence avec les ensembles est qu'un dictionnaire supporte un système de clé qui permet d'identifier chaque élément de façon unique. On peut le voir comme un système d'indices personnalisable.

Pour définir un dictionnaire, on place entre accolades { } les systèmes clés-valeurs que l'on sépare par des virgules. Les clés doivent être des nombres entiers, à virgule, des booléens ou des chaînes de caractères. Il existe aussi d'autres types d'objets qui peuvent servir comme clé que nous verrons plus tard dans la session.

Définition d'un dictionnaire
1
2
3
4
5
dictionnaire = {
    cle1 : valeur1,
    cle2 : valeur2,
    cle3 : valeur3,
}

Immutabilité

Chaque clé doit être dans un type immuable, ce qui exclut les listes et collections de données.

Accéder aux éléments d'un dictionnaire

Pour accéder aux éléments d'un dictionnaire, on utilise les crochets carrés [ ] avec la valeur de la clé entre les crochets.

Accéder et modifier les éléments d'un dictionnaire
# On crée un dictionnaire avec le nombre de personne dans un groupe expérimental 
repartition = {
    "Groupe A" : 12,
    "Groupe B" : 15,
    "Groupe C" : 12,
    "Groupe D" : 13
}

# Afficher le nombre de personnes dans le groupe B
print(repartition["Groupe B"])

# On a oublié un participant dans le gorupe C
repartition["Groupe C"] = 13

Égalité de dictionnaire

On peut comparer deux dictionnaires avec l'opérateur d'égalité ==. Les dictionnaires ne sont égaux que si l'ensemble des clés est le même et que tous les éléments aux mêmes clés sont égaux.

Extraire les clés et les valeurs

Sur un dictionnaire, on peut utiliser les fonctions keys et values pour extraire la liste des clés et des valeurs d'un dictionnaire. Les deux fonctions retournent une liste respectivement des clés et de valeurs.

Extration des clés et des valeurs
repartition = {
    "Groupe A" : 12,
    "Groupe B" : 15,
    "Groupe C" : 12,
    "Groupe D" : 13
}

nom_groupes = repartition.keys()
print(nom_groupes)

# Affiche dict_keys(['Groupe A', 'Groupe B', 'Groupe C', 'Groupe D'])

Parcourir un dictionnaire

Pour parcourir un dictionnaire, on peut s'y prendre de deux façons :

  1. Parcourir les clés avec une boucle for;
  2. Parcourir les pairs clé-valeurs avec la fonction item et une boucle for.

Les deux méthodes sont équivalentes.

Parcours des clés d'un dictionnaire
# Syntaxe générale du parcours par clé 
for cle in dictionnaire:
    # Traitement

# Exemple avec les groupes
repartition = {
    "Groupe A" : 12,
    "Groupe B" : 15,
    "Groupe C" : 12,
    "Groupe D" : 13
}

for nom_groupe in repartition : 
    print(f"Il y a {repartition[nom_groupe]} dans le {nom_groupe}.")
Parcours des clés d'un dictionnaire
# Syntaxe générale du parcours par clé 
for cle, valeur in dictionnaire.items():
    # Traitement

# Exemple avec les groupes
repartition = {
    "Groupe A" : 12,
    "Groupe B" : 15,
    "Groupe C" : 12,
    "Groupe D" : 13
}

for nom_groupe, nombre_participants in repartition.items() : 
    print(f"Il y a {nombre_participants} participant(e)s dans le {nom_groupe}.")

Ajouter des éléments

Pour ajouter un élément dans un dictionnaire, il suffit de l'assigner à une nouvelle clé, de la même façon que l'on modifierai un élément existant.

Ajout d'un élément dans un dictionnaire
# Syntaxe de l'ajout
dictionnaire[nouvelle_cle] = valeur

# Ajout du groupe E avec 14 participants
repartition = {
        "Groupe A" : 12,
        "Groupe B" : 15,
        "Groupe C" : 12,
        "Groupe D" : 13
    }

repartition["Groupe E"] = 14
print(repartition)

# Affiche {'Groupe A': 12, 'Groupe B': 15, 'Groupe C': 12, 'Groupe D': 13, 'Groupe E': 14}

Retirer des éléments

Pour retirer un élément, il faut connaître sa clé. La fonction pop, appelée directement sur le dictionnaire qui accepte un paramètre : la clé de l'élément à retirer.

Retrait d'un élément dans un dictionnaire
# Syntaxe de retrait d'une valeur
dictionnaire.pop(cle_a_retirer)

# Retrait du groupe B 
repartition = {
        "Groupe A" : 12,
        "Groupe B" : 15,
        "Groupe C" : 12,
        "Groupe D" : 13
    }

repartition.pop("Groupe B")
print(repartition)

# Affiche {'Groupe A': 12, 'Groupe C': 12, 'Groupe D': 13}

Démonstration

Calculer la réfraction

Vous devez concevoir un programme qui permet d'identifier la substance traversée par une rayon lumineux du changement de l'angle du faisseau de lumière. Ce phénomène est appelé réfraction et se manifeste en raison d'un changement de la vitesse de la lumière entre les substances. Le rayon lumineux est projeté dans le vide (\(n_1 = 1\)) toujours orienté pour frapper la surface à 45° (\(\theta_1\) = 45°). Vous avez en votre possession les données suivantes :

Substance Indice de réfraction \(n\)
Glace 1,31
Eau 1,33
Pyrex 1,48
Verre crown 1,52
Diamant 2,42

Rappel : la formule de la réfraction est

\[ n_1 sin(\theta_1) = n_2 sin(\theta_2) \]

Illustration du phénomène de réfraction

Référence : Allo Prof. (11 mars 2025). La réfraction. https://www.alloprof.qc.ca/fr/eleves/bv/physique/la-refraction-p1033.

Exemple de code

Attention : ce code sera d'abord présenté en démonstration. Pour tirez le maximum de l'activité, veuillez ne pas le consulter avant l'activité.

Exemple de code

Exercices

Page 173 et suivantes

Recommandés : 9.41, 9.42, 9.45, 9.46