Les structures de données en Python
Objectifs pédagogiques
Les listes
Exemple - création de listes
Accéder et modifier des éléments
Les indices commencent toujours à 0, et on peut modifier directement les éléments car les listes sont mutables (contrairement à certaines autres structures comme les tuples).
Ajouter ou supprimer des éléments
Il existe aussi d’autres méthodes utiles comme pop() (retire un élément par son indice), clear() (vide la liste), ou encore extend() (ajoute plusieurs éléments d’un coup).
Parcourir une liste
On peut aussi parcourir les indices avec range(len(prenoms)) si l’on souhaite accéder à la position de chaque élément.
Fonctions utiles
| Fonction | Effet | Exemple | Résultat |
| ----------------- | -------------------- | ----------------- | --------- |
| len() | longueur de la liste | len([1,2,3]) | 3 |
| sum() | somme des éléments | sum([2,5,8]) | 15 |
| min() / max() | valeurs extrêmes | max([3,9,4]) | 9 |
| sorted() | trie la liste | sorted([3,1,2]) | [1,2,3] |
Exemple complet
Les listes sont donc très polyvalentes : elles peuvent évoluer au fil de l’exécution du programme et s’adaptent à la plupart des situations où il faut stocker plusieurs valeurs.
Les chaînes de caractères
Exemple
Chaque caractère est accessible par un indice, comme dans une liste. Les indices négatifs permettent de partir de la fin de la chaîne.
Parcourir une chaîne
Cette approche est souvent utilisée pour analyser ou transformer un texte caractère par caractère.
Méthodes utiles
| Méthode | Effet | Exemple | Résultat |
| ---------------- | ------------------ | --------------------------- | --------------- |
| .lower() | tout en minuscules | "PYTHON".lower() | "python" |
| .upper() | tout en majuscules | "python".upper() | "PYTHON" |
| .replace(a, b) | remplace un mot | "chat".replace("ch", "r") | "rat" |
| .split() | découpe une phrase | "a,b,c".split(",") | ['a','b','c'] |
| .join() | assemble une liste | ",".join(['a','b']) | "a,b" |
Ces méthodes ne modifient pas la chaîne d’origine : elles renvoient une nouvelle chaîne. Il est donc possible de les enchaîner pour effectuer plusieurs transformations à la suite.
Exemple complet
Les chaînes sont omniprésentes en programmation : elles servent à afficher des messages, à lire des entrées utilisateurs, à manipuler des fichiers texte ou encore à formater des données avant leur enregistrement.
Les tuples
Exemple
Les tuples sont plus rapides que les listes et idéaux pour les données constantes. Ils peuvent aussi être utilisés comme clés dans un dictionnaire, ce qui n’est pas possible avec les listes, car ils sont immuables.
Exemple pratique
Il est également possible de décomposer un tuple directement en plusieurs variables :
Cette propriété, appelée dépaquetage, est très utile pour manipuler des données structurées sans avoir à accéder aux indices.
Les dictionnaires
Exemple
Chaque clé doit être unique et de type immuable (chaîne, nombre, ou tuple), tandis que les valeurs peuvent être de n’importe quel type. L’accès se fait directement par la clé, ce qui rend les recherches très rapides, même dans de grands ensembles de données.
Modifier un dictionnaire
Les dictionnaires sont dynamiques : on peut ajouter, mettre à jour ou supprimer des entrées à tout moment.
La méthode get() permet d’accéder à une valeur sans provoquer d’erreur si la clé n’existe pas.
Parcourir un dictionnaire
Cette forme de boucle est la plus courante : elle permet de parcourir à la fois les clés et les valeurs sans devoir les extraire séparément.
Fonctions utiles
| Méthode | Effet | Exemple |
| ----------- | ----------------------------- | ---------------- |
| .keys() | renvoie toutes les clés | eleve.keys() |
| .values() | renvoie toutes les valeurs | eleve.values() |
| .items() | renvoie les paires clé–valeur | eleve.items() |
| len() | nombre d’éléments | len(eleve) |
Ces méthodes sont très utiles pour explorer ou manipuler un dictionnaire de manière flexible.
Exemple complet
Les dictionnaires sont omniprésents en Python : on les retrouve dans la manipulation de fichiers JSON, la configuration d’applications, les bases de données, ou encore dans les échanges entre programmes.