Dès que l’on écrit ses premiers programmes en Python, on a besoin de stocker plusieurs valeurs : une série de notes, les produits d’un panier, les informations d’un utilisateur. Python propose pour cela deux structures de données incontournables : les listes et les dictionnaires. Comprendre leurs différences permet d’écrire un code plus clair et plus efficace. Voyons-les pas à pas.
Les listes : des valeurs rangées dans l’ordre
Une liste est une collection ordonnée et modifiable d’éléments, écrite entre crochets. Chaque élément possède une position, appelée indice, qui commence à 0.
fruits = ["pomme", "banane", "cerise"]
print(fruits[0]) # pomme
print(fruits[-1]) # cerise (dernier élément)
Une liste peut contenir des valeurs de types différents, et elle peut changer après sa création. Voici les opérations les plus courantes :
| Opération | Code | Effet |
|---|---|---|
| Ajouter à la fin | fruits.append(“kiwi”) | Ajoute « kiwi » |
| Insérer à une position | fruits.insert(1, “poire”) | Insère « poire » à l’indice 1 |
| Supprimer une valeur | fruits.remove(“banane”) | Retire la première « banane » |
| Retirer le dernier | fruits.pop() | Retire et renvoie le dernier élément |
| Taille | len(fruits) | Nombre d’éléments |
| Trier | fruits.sort() | Trie la liste en place |
Parcourir une liste
La boucle for est l’outil naturel pour traiter chaque élément :
for fruit in fruits:
print("J'aime la", fruit)
On peut aussi extraire une partie de la liste grâce aux tranches (slices) : fruits[0:2] renvoie les éléments d’indice 0 et 1.
Les dictionnaires : des valeurs retrouvées par leur clé
Un dictionnaire stocke des paires clé : valeur, entre accolades. Au lieu de retrouver un élément par sa position, on le retrouve par son nom, ce qui rend le code beaucoup plus lisible quand les données décrivent quelque chose.
personne = {"nom": "Léa", "age": 28, "ville": "Lyon"}
print(personne["nom"]) # Léa
personne["age"] = 29 # modification
personne["metier"] = "dev" # ajout d'une clé
Les clés doivent être uniques et de type non modifiable (chaînes, nombres, tuples). Si vous demandez une clé inexistante avec les crochets, Python lève une erreur KeyError. La méthode get est plus prudente :
print(personne.get("email", "non renseigné"))
Parcourir un dictionnaire
for cle, valeur in personne.items():
print(cle, ":", valeur)
Les méthodes keys(), values() et items() donnent respectivement les clés, les valeurs et les paires.
Liste ou dictionnaire : comment choisir ?
| Critère | Liste | Dictionnaire |
|---|---|---|
| Accès | Par position (indice) | Par clé |
| Ordre | Ordonnée par position | Conserve l’ordre d’insertion |
| Doublons | Autorisés | Clés uniques |
| Usage typique | Série de valeurs similaires | Données décrivant un objet |
Une règle simple : si vous avez une série de choses du même genre (une liste de prénoms, de prix, de fichiers), utilisez une liste. Si vous avez une fiche d’informations nommées (un utilisateur, un produit, un réglage), utilisez un dictionnaire. Et lorsque vous devez retrouver rapidement une valeur à partir d’un identifiant, le dictionnaire est généralement bien plus pratique qu’une recherche dans une liste.
Listes en compréhension : une écriture plus courte
Python propose une syntaxe élégante pour construire une liste à partir d’une autre, appelée compréhension de liste. Au lieu d’écrire une boucle de plusieurs lignes, on décrit le résultat souhaité en une seule : carres = [n * n for n in range(1, 6)] produit la liste 1, 4, 9, 16, 25. On peut aussi ajouter une condition pour filtrer les éléments : pairs = [n for n in range(10) if n % 2 == 0]. Cette écriture est très appréciée des développeurs, à condition de rester lisible : si l’expression devient trop longue, une boucle classique reste le meilleur choix.
Un mot sur les tuples et les ensembles
Python connaît d’autres structures proches. Le tuple, écrit entre parenthèses, ressemble à une liste mais ne peut pas être modifié après sa création : c’est pratique pour des valeurs qui ne doivent pas changer, comme des coordonnées. L’ensemble (set), écrit entre accolades sans clés, ne garde que des valeurs uniques et sert par exemple à supprimer les doublons d’une liste. Les connaître vous aidera à choisir l’outil adapté, mais les listes et les dictionnaires restent les deux structures que vous utiliserez le plus souvent.
Les combiner
Dans les vrais programmes, on associe souvent les deux. Une liste de dictionnaires représente par exemple plusieurs personnes ayant chacune plusieurs champs :
equipe = [
{"nom": "Léa", "age": 28},
{"nom": "Karim", "age": 34},
]
for membre in equipe:
print(membre["nom"], membre["age"])
Ce format est très proche du JSON, utilisé partout pour échanger des données entre applications web, ce qui explique l’importance de ces deux structures.
Erreurs fréquentes des débutants
- Oublier que l’indice commence à 0 : une liste de 3 éléments a pour indices 0, 1 et 2.
- Dépasser les limites : accéder à
fruits[3]dans une liste de 3 éléments provoque uneIndexError. - Modifier une liste pendant qu’on la parcourt : cela peut sauter des éléments ; préférez créer une nouvelle liste.
- Confondre copie et référence :
b = ane copie pas la liste, les deux noms désignent le même objet ; utiliseza.copy(). - Utiliser une clé qui n’existe pas : vérifiez avec
inou utilisezget.
Conclusion
Les listes et les dictionnaires sont les deux piliers de la manipulation de données en Python. Plus vous les pratiquez, plus vous saurez choisir instinctivement la bonne structure pour chaque situation. Pour approfondir la programmation et progresser pas à pas, vous pouvez explorer les cours d’informatique et de programmation proposés sur Cursa.
















