Partie 2 : Les structures de données en Python#
Les types scalaires (int, float, bool) ne peuvent contenir qu'une seule valeur atomique à la fois. Or, dans le monde réel du développement logiciel et de la science des données, les informations se présentent sous forme de collections : une série de relevés météorologiques, un catalogue de produits avec leurs prix, un annuaire d'utilisateurs ou une liste d'adresses IP uniques.
Python intègre nativement quatre structures de données fondamentales, optimisées et hautement polyvalentes : les listes, les tuples, les dictionnaires et les ensembles (sets).
1. La matrice comparative des structures natives#
Le choix de la bonne structure de données est la décision architecturale la plus déterminante pour la lisibilité et les performances de votre code :
| Structure | Syntaxe littérale | Ordonnée ? | Modifiable ? (Mutable) | Doublons autorisés ? | Indexation / Accès | Cas d'usage typique |
|---|---|---|---|---|---|---|
Liste (list) |
[1, 2, 3] |
Oui | Oui (Mutable) | Oui | Par indice entier 0, 1, ... |
Collections ordonnées d'éléments dynamiques |
Tuple (tuple) |
(1, 2, 3) |
Oui | Non (Immuable) | Oui | Par indice entier 0, 1, ... |
Données fixes protégées, coordonnées, clés de dictionnaires |
Dictionnaire (dict) |
{"a": 1} |
Oui (3.7+) | Oui (Mutable) | Clés uniques | Par clé de recherche \(O(1)\) | Associations clé-valeur, registres, payloads JSON |
Ensemble (set) |
{1, 2, 3} |
Non | Oui (Mutable) | Non (Unicité) | Test d'appartenance in en \(O(1)\) |
Déduplication, opérations d'ensembles mathématiques |
flowchart TD
A[Besoin d'une collection de donnees] --> B{Paires Cle - Valeur ?}
B -->|Oui| C[Dictionnaire dict]
B -->|Non| D{Unicite stricte sans doublons ?}
D -->|Oui| E[Ensemble set]
D -->|Non| F{La collection doit-elle etre modifiable ?}
F -->|Oui| G[Liste list]
F -->|Non| H[Tuple tuple]
2. Importance de la mutabilité en Python#
En Python, un objet est dit mutable si son contenu peut être modifié in-place après sa création sans changer son identifiant mémoire (id()).
- Objets mutables : list, dict, set, objets personnalisés.
- Objets immuables : int, float, bool, str, tuple, frozenset.
Comprendre la mutabilité est essentiel pour éviter les bugs de copie partagée par référence et pour savoir quels types peuvent servir de clés dans un dictionnaire (seuls les objets immuables et hachables sont autorisés).
3. Sommaire des leçons de la Partie 2#
- Les listes : création, méthodes d'ajout/suppression, découpage (slicing) et compréhensions de listes.
- Les tuples : immuabilité, déballage (unpacking) et passage de paramètres multiples.
- Les dictionnaires : clés-valeurs, parcours avec
.items(),.get(), et compréhensions de dictionnaires. - Les sets : déduplication automatique et opérations ensemblistes (union, intersection, différence).
4. Atelier vidéo d'application#
Retrouvez la mise en pratique de ces structures lors de l'atelier interactif AlgoJungle :
Commentaires