NSIChapitre 2

Représentation des données : types construits

L'essentiel en 30 secondes

Python propose trois types construits essentiels : les tableaux (list, mutables, accès par indice en $O(1)$), les tuples (immutables, utilisables comme clés de dict), et les dictionnaires (clé→valeur, accès en $O(1)$ moyen). Les compréhensions de liste permettent de créer des tableaux de façon compacte. Attention aux pièges : passage par référence des mutables, copie superficielle avec [:], et le bug [[0]*n]*m. Choisis le bon type selon le besoin : modification → list/dict, clé → tuple, recherche rapide → dict/set.

Les notions à connaître

Tableau (list)
Collection ordonnée et mutable d'éléments. Accès par indice (commence à 0). Taille dynamique. Ex : [1, 2, 3]. Complexité : accès O(1)O(1), append O(1)O(1) amorti,insert/remove, insert/remove O(n)O(n).
Tuple
Collection ordonnée et immutable. Une fois créé, on ne peut ni ajouter, ni modifier, ni supprimer. Ex : (1, 2, 3). Peut servir de clé de dictionnaire car hashable.
Dictionnaire (dict)
Collection de paires clé:valeur. Accès par clé en O(1)O(1) moyen (table de hachage). Ordonné par insertion depuis Python 3.7. Ex : {'nom': 'Alice', 'age': 17}.
Mutable / Immutable
Mutable = modifiable après création (list, dict, set). Immutable = non modifiable (tuple, str, int, float, bool). L'immutabilité protège contre les effets de bord.
Compréhension de liste
Syntaxe compacte pour créer un tableau : [expr for x in iterable if condition]. Plus lisible et souvent plus rapide qu'une boucle for classique.
Tableau à 2 dimensions (matrice)
Liste de listes. Accès par double indice : matrice[ligne][colonne]. Création par compréhension : [[0]*cols for _ in range(lignes)].
Set (ensemble)
Collection non ordonnée sans doublons. Opérations ensemblistes : union (|), intersection (&), différence (-). Test d'appartenance en O(1)O(1).
Copie superficielle vs profonde
Copie superficielle (list.copy() ou [:]) : copie la structure mais pas les objets imbriqués. Copie profonde (copy.deepcopy()) : copie récursivement tout.

Les erreurs à éviter en nsi

Sais-tu répondre à ces questions ?

Les corrigés détaillés sont dans le quiz du chapitre.

  1. Qu'affiche le code suivant ? liste = [10, 20, 30, 40] print(liste[2])
  2. Quelle instruction provoque une erreur ?
  3. Soit d = {"nom": "Ada", "age": 36}. Qu'affiche print(d["nom"]) ?
  4. Qu'affiche le code suivant ? liste = [5, 10, 15, 20, 25] print(liste[1:4])
  5. Soit m = [[1, 2], [3, 4], [5, 6]]. Qu'affiche print(m[1][0]) ?

Accède à la fiche complète

Crée ton compte gratuit pour lire la fiche en entier et accéder à 7 000+ contenus de révision.

Les autres chapitres de nsi en 1ère spécialité