Introduction : Les piliers de la programmation Python
Si tu suis la spécialité NSI, tu as déjà croisé ces deux termes : listes et dictionnaires. Ce ne sont pas de simples notions, mais les véritables piliers de la programmation en Python. Elles te permettent d'organiser, de stocker et de manipuler des données de manière efficace. Que ce soit pour gérer les notes d'une classe, les caractéristiques d'un personnage de jeu vidéo, ou les résultats d'une expérience scientifique, tu auras constamment besoin de ces structures. Dans ce guide, on va décortiquer ensemble leur fonctionnement, leurs différences et leurs usages typiques pour que tu sois parfaitement à l'aise le jour du bac.
Les listes : ta collection ordonnée et modifiable
Une liste en Python est une séquence mutable et ordonnée d'éléments. "Mutable" signifie que tu peux la modifier après sa création, et "ordonnée" que chaque élément a une position précise, son index. C'est l'outil parfait pour ranger des choses dans un ordre spécifique.
Créer et accéder aux éléments d'une liste
Pour créer une liste, tu utilises des crochets []. Les éléments sont séparés par des virgules.
ma_liste = ["Python", 42, True, 3.14]Comme tu peux le voir, une liste peut contenir différents types de données. Pour accéder à un élément, on utilise son index, en commençant à 0.
ma_liste[0]renvoie"Python".ma_liste[-1]renvoie le dernier élément,3.14(indexation négative possible).
Manipuler une liste : les méthodes essentielles
La puissance des listes réside dans les opérations que tu peux effectuer dessus. Voici les méthodes que tu dois absolument connaître :
- Ajouter :
.append(valeur)ajoute à la fin..insert(index, valeur)insère à une position. - Supprimer :
.remove(valeur)enlève la première occurrence.del ma_liste[index]aussi. - Trouver :
.index(valeur)renvoie l'index de la première occurrence. - Ordonner :
.sort()trie la liste sur place.sorted(ma_liste)renvoie une nouvelle liste triée.
N'oublie pas le slicing (tranches) pour extraire des portions de liste : ma_liste[1:3] renvoie les éléments des index 1 à 2 (3 exclu).
Les dictionnaires : associer des clés et des valeurs
Si la liste est une collection ordonnée par des indices numériques, le dictionnaire est une collection non ordonnée (avant Python 3.7) qui associe des clés uniques à des valeurs. C'est comme un vrai dictionnaire : tu cherches un mot (la clé) pour obtenir sa définition (la valeur).
Structure et création d'un dictionnaire
On utilise des accolades {}. Chaque élément est un couple clé: valeur.
mon_dico = {"nom": "Dupont", "age": 17, "specialite": "NSI"}Les clés doivent être de types immuables (chaînes, nombres, tuples). Les valeurs peuvent être absolument n'importe quoi, y compris d'autres listes ou dictionnaires !
Manipuler un dictionnaire comme un pro
L'accès se fait par la clé, et non par un index numérique.
- Accéder :
mon_dico["nom"]renvoie"Dupont". Méthode sécurisée :mon_dico.get("nom", "Valeur par défaut"). - Ajouter/Modifier :
mon_dico["moyenne"] = 15.5. Si la clé existe, la valeur est mise à jour. - Parcourir : Utilise
.keys()pour les clés,.values()pour les valeurs, et.items()pour les couples (clé, valeur) dans une bouclefor. - Supprimer :
del mon_dico["age"]oumon_dico.pop("age").
Quand utiliser une liste ou un dictionnaire ?
C'est une question cruciale. Le choix dépend de la nature de tes données et de ce que tu veux en faire.
- Utilise une LISTE quand :
- L'ordre des éléments est important (une file d'attente, un historique).
- Tu as une simple collection d'items du même type (des notes, des températures).
- Tu as besoin d'accéder aux éléments par leur position (le 3ème élément, les 10 premiers).
- Utilise un DICTIONNAIRE quand :
- Tu as besoin d'une association clé-valeur claire (nom → numéro étudiant, produit → prix).
- Tu dois retrouver une valeur rapidement à partir d'une clé unique (recherche efficace).
- L'ordre n'est pas ta priorité (avant Python 3.7), ou tu veux une structure plus descriptive.
Astuce NSI : Tu peux les combiner ! Une liste de dictionnaires est extrêmement courante pour représenter un tableau de données, comme un registre d'élèves.
élèves = [
{"nom": "Alice", "note": 16},
{"nom": "Bob", "note": 12}
]Cas pratique NSI : Gestion d'une bibliothèque
Imaginons un mini-projet pour consolider tout ça : un système de gestion de livres.
On peut modéliser le catalogue par une liste de dictionnaires. Chaque dictionnaire représente un livre.
bibliothèque = [
{"titre": "Le Petit Prince", "auteur": "Saint-Exupéry", "annee": 1943, "emprunte": False},
{"titre": "1984", "auteur": "Orwell", "annee": 1949, "emprunte": True}
]Maintenant, écris des fonctions pour :
1. Ajouter un nouveau livre (un dictionnaire) à la liste.
2. Marquer un livre comme emprunté en cherchant son titre (parcourir la liste, trouver le bon dictionnaire, modifier la clé "emprunte").
3. Lister tous les auteurs (parcourir la liste et collecter les valeurs de la clé "auteur" dans une nouvelle liste).
Ce petit exercice fait appel à la création, la modification, le parcours et l'imbrication de ces deux structures. C'est exactement le genre de compétence évaluée en NSI.
Conclusion et pour aller plus loin
Les listes et les dictionnaires ne sont pas que des sujets de cours, ce sont les outils quotidiens de tout programmeur Python. En les maîtrisant, tu ouvres la porte à la manipulation de données complexes, aux algorithmes de tri et de recherche, et à la modélisation de problèmes concrets.
Pour t'entraîner, reprends tes anciens projets et demande-toi si l'utilisation d'une liste ou d'un dictionnaire était la plus adaptée. Essaye de refactoriser ton code. La pratique est la clé pour que ces concepts deviennent une seconde nature. Bon courage pour la suite de ton parcours en NSI !
