Les dictionnaires sont l'un des types de données les plus puissants en Python. En NSI, tu les rencontreras souvent pour stocker des informations structurées, comme les données d'un utilisateur ou les paramètres d'une configuration. Dans cet article, on va voir ensemble ce qu'est un dictionnaire, comment l'utiliser, et pourquoi il est essentiel pour tes projets et pour le bac.
Qu'est-ce qu'un dictionnaire en Python ?
Un dictionnaire (type dict) est une collection non ordonnée de paires clé-valeur. Chaque clé est unique et permet d'accéder rapidement à sa valeur associée. Contrairement aux listes indexées par des entiers, les dictionnaires utilisent des clés qui peuvent être de différents types immuables (chaînes, nombres, tuples).
Syntaxe de base
mon_dict = {"nom": "Alice", "age": 17, "classe": "Terminale"}Ici, les clés sont "nom", "age", "classe" et les valeurs correspondantes sont "Alice", 17, "Terminale".
Opérations courantes sur les dictionnaires
Voici les principales opérations que tu dois maîtriser en NSI :
- Accès à une valeur :
mon_dict["nom"]retourne"Alice". - Ajout/modification d'une paire :
mon_dict["ville"] = "Paris"ajoute une nouvelle clé, ou modifie la valeur si la clé existe déjà. - Suppression :
del mon_dict["age"]supprime la paire. - Vérification d'existence :
"nom" in mon_dictretourneTrue. - Parcourir les clés :
for cle in mon_dict: print(cle) - Parcourir les valeurs :
for valeur in mon_dict.values(): print(valeur) - Parcourir les paires :
for cle, valeur in mon_dict.items(): print(cle, valeur)
Pourquoi utiliser un dictionnaire plutôt qu'une liste ?
Les dictionnaires sont idéaux quand tu veux associer des informations de manière claire. Par exemple, pour stocker les notes d'un élève :
notes = {"maths": 15, "nsi": 18, "physique": 12}
print(notes["nsi"]) # Affiche 18Avec une liste, tu devrais retenir l'index de chaque matière, ce qui est moins lisible. De plus, la recherche par clé est très rapide (complexité O(1) en moyenne).
Cas d'usage concrets pour le bac NSI
Gestion d'un carnet d'adresses
carnet = {
"Alice": "alice@example.com",
"Bob": "bob@example.com"
}
# Ajouter un contact
carnet["Charlie"] = "charlie@example.com"
# Rechercher un email
if "Alice" in carnet:
print(carnet["Alice"])Compter les occurrences dans une chaîne
texte = "abracadabra"
compteur = {}
for lettre in texte:
if lettre in compteur:
compteur[lettre] += 1
else:
compteur[lettre] = 1
print(compteur) # {'a': 5, 'b': 2, 'r': 2, 'c': 1, 'd': 1}Tableau associatif pour un jeu
joueur = {
"nom": "Héros",
"pv": 100,
"inventaire": ["épée", "potion"]
}
# Modifier les PV
joueur["pv"] -= 10Pièges à éviter et bonnes pratiques
- Clés mutables interdites : tu ne peux pas utiliser une liste comme clé. Utilise un tuple si besoin.
- Accès sécurisé : utilise
mon_dict.get("cle", valeur_par_defaut)pour éviter une erreur si la clé n'existe pas. - Copie :
mon_dict.copy()crée une copie superficielle. Pour une copie profonde, utilisecopy.deepcopy.
Lien avec le programme NSI et le bac
Les dictionnaires sont au programme de Première et Terminale. Au bac, tu peux être amené à les utiliser dans des exercices de programmation, notamment pour des algorithmes de tri, de recherche ou de gestion de données. Maîtrise les méthodes keys(), values(), items(), get() et la compréhension de dictionnaire.
Compréhension de dictionnaire
carres = {x: x**2 for x in range(5)}
print(carres) # {0: 0, 1: 1, 2: 4, 3: 9, 4: 16}Cette syntaxe concise est très appréciée aux examens.
Pour aller plus loin
Si tu rencontres des erreurs avec les dictionnaires, n'hésite pas à consulter notre guide sur les erreurs Python courantes. Tu peux aussi revoir les bases avec nos cours NSI et t'entraîner avec des exercices interactifs. Pour des révisions supplémentaires, jette un œil à AlloBac et AlloLycée.
Conclusion
Les dictionnaires sont un outil incontournable en Python. Ils te permettent de structurer tes données de façon claire et efficace. Entraîne-toi à les utiliser dans des petits projets personnels, et tu verras qu'ils deviendront naturels. Bon courage pour tes révisions !
