Les dictionnaires

Les dictionnaires sont des structures de données très utiles en Python. Ils permettent de stocker des paires clé-valeur, où chaque clé est associée à une valeur. C’est une façon pratique d’organiser des données et d’y accéder rapidement grâce aux clés.


Pourquoi utiliser des dictionnaires ?

Imaginez que vous voulez stocker des informations sur un élève, comme son nom, son âge et sa classe. Avec une liste, vous pouvez regrouper ces informations, mais il serait difficile de savoir à quoi correspond chaque élément. Les dictionnaires, eux, permettent d’associer directement une étiquette (la clé) à chaque donnée (la valeur).


Créer un dictionnaire

Un dictionnaire se définit avec des accolades {}. Les paires clé-valeur sont séparées par des deux-points :.

Exemple 1 : Créer un dictionnaire simple

eleve = {"nom": "Alice", "age": 15, "classe": "2nde"}
print(eleve)

Sortie :

{'nom': 'Alice', 'age': 15, 'classe': '2nde'}

Accéder aux valeurs d’un dictionnaire

On peut accéder à une valeur en utilisant sa clé entre crochets.

Exemple 2 : Accéder à une valeur

eleve = {"nom": "Alice", "age": 15, "classe": "2nde"}
print(eleve["nom"])  # Affiche "Alice"

Sortie :

Alice

Exemple 3 : Utiliser la méthode get()

La méthode get() est utile pour éviter les erreurs si la clé n’existe pas.

eleve = {"nom": "Alice", "age": 15}
print(eleve.get("classe", "Clé non trouvée"))  # Affiche un message par défaut

Sortie :

Clé non trouvée

Ajouter, modifier et supprimer des éléments

Ajouter ou modifier un élément

Si la clé existe, sa valeur sera mise à jour. Sinon, un nouvel élément sera ajouté.

eleve = {"nom": "Alice", "age": 15}
eleve["classe"] = "2nde"  # Ajout d'une nouvelle clé
eleve["age"] = 16         # Modification d'une clé existante
print(eleve)

Sortie :

{'nom': 'Alice', 'age': 16, 'classe': '2nde'}

Supprimer un élément

On peut utiliser la méthode pop() ou le mot-clé del.

eleve = {"nom": "Alice", "age": 15, "classe": "2nde"}
eleve.pop("classe")  # Supprime "classe"
print(eleve)

Sortie :

{'nom': 'Alice', 'age': 15}

Parcourir un dictionnaire

Il est possible de parcourir les clés, les valeurs ou les deux.

Exemple 4 : Parcourir les clés

eleve = {"nom": "Alice", "age": 15, "classe": "2nde"}
for cle in eleve:
    print(cle)

Sortie :

nom
age
classe

Exemple 5 : Parcourir les valeurs

eleve = {"nom": "Alice", "age": 15, "classe": "2nde"}
for valeur in eleve.values():
    print(valeur)

Sortie :

Alice
15
2nde

Exemple 6 : Parcourir les paires clé-valeur

eleve = {"nom": "Alice", "age": 15, "classe": "2nde"}
for cle, valeur in eleve.items():
    print(cle, ":", valeur)

Sortie :

nom : Alice
age : 15
classe : 2nde

Vérifier la présence d’une clé

On peut utiliser l’opérateur in pour vérifier si une clé existe dans un dictionnaire.

eleve = {"nom": "Alice", "age": 15}
print("nom" in eleve)  # True
print("classe" in eleve)  # False

Méthodes utiles des dictionnaires

  • keys() : Renvoie toutes les clés.
  • values() : Renvoie toutes les valeurs.
  • items() : Renvoie toutes les paires clé-valeur.
  • clear() : Vide le dictionnaire.
  • copy() : Crée une copie du dictionnaire.

Exercices sur les dictionnaires

  1. Carnet d’élèves : Créez un dictionnaire pour stocker les notes d’un élève (par exemple, {"maths": 15, "français": 13}). Ajoutez une matière, modifiez une note et affichez le dictionnaire final.
  2. Annuaire téléphonique : Créez un dictionnaire avec trois noms comme clés et leurs numéros de téléphone comme valeurs. Affichez le numéro de téléphone pour une clé donnée.
  3. Parcours : Créez un dictionnaire contenant des informations sur un livre (titre, auteur, année). Parcourez et affichez chaque clé et sa valeur.
  4. Fréquence des lettres : Demandez à l’utilisateur de saisir un mot et créez un dictionnaire pour compter combien de fois chaque lettre apparaît.
  5. Fusionner deux dictionnaires : Créez deux dictionnaires avec des données sur un étudiant (par exemple, {"nom": "Alice"} et {"age": 15, "classe": "2nde"}). Fusionnez-les en un seul dictionnaire.

En maîtrisant les dictionnaires, vous serez capables de structurer et manipuler des données complexes dans vos programmes Python.