Représentation des données : types construits
Ce domaine concerne les structures qui regroupent plusieurs valeurs : listes, tuples, dictionnaires et ensembles. L'examen évalue la création, l'accès, la modification, le parcours et la comparaison de ces structures, ainsi que la compréhension de la mutabilité et du partage de références.
Règles et concepts
- Une liste Python est ordonnée et mutable : on peut ajouter, retirer ou remplacer un élément. L'accès se fait par indice, de 0 à len(liste)-1.
- Un tuple est ordonné et non mutable : après création, on ne peut pas remplacer un élément. Il peut contenir des objets mutables, mais le tuple lui-même ne change pas de structure.
- Un dictionnaire associe des clés à des valeurs. Les clés doivent être hachables, donc immuables en pratique : chaînes, nombres ou tuples convenables, mais pas de liste comme clé.
- Un ensemble stocke des éléments uniques et non ordonnés ; il sert aux tests d'appartenance et aux opérations d'union et d'intersection.
- Une affectation ne copie pas une liste : elle partage la même référence. Pour une copie superficielle, on utilise liste[:] ou list(liste).
Exemple travaillé
Soit a = [1, 2] ; b = a ; b.append(3). Après exécution, a vaut [1, 2, 3], car a et b désignent la même liste. Si l'on écrit c = a[:] puis c.append(4), a reste [1, 2, 3] : c est une copie superficielle. Si la liste contenait elle-même une liste, la copie superficielle partagerait les sous-listes ; il faudrait une copie profonde pour les dupliquer aussi.
Pièges fréquents
Croire que b = a copie la liste ; confondre indice et valeur ; utiliser un indice hors bornes ; modifier un tuple ; prendre une liste comme clé de dictionnaire ; oublier qu'un dictionnaire n'a pas d'ordre garanti par indice ; confondre copie superficielle et copie profonde. Une erreur classique consiste aussi à parcourir une liste tout en la modifiant, ce qui décale les éléments.
À retenir
- Liste : ordonnée, mutable, accès par indice.
- Tuple : ordonné, non mutable.
- Dictionnaire : clés uniques et hachables, valeurs associées.
- Ensemble : éléments uniques, non ordonné.
- b = a partage la référence ; a[:] copie la liste en surface.