NSI·NSIPremière

Structures de données

Le bon outil pour le bon job. Choisir une liste pour chercher dans 1 million d'éléments, c'est cinéma.

Cours

Tuple (immutable)

t = (1, 2, 3)
t[0]      # 1
# t[0] = 5  → ERREUR

Liste (mutable, ordonnée)

L = [1, 2, 3]
L.append(4)
L.pop()     # supprime et renvoie le dernier
L.insert(0, 'a')

Accès O(1), recherche O(n).

Dictionnaire (clé → valeur)

d = {"nom": "Alice", "age": 17}
d["age"]            # 17
d["nouvelle"] = 5
"nom" in d          # True

Accès O(1) en moyenne. Magique.

Ensemble (set, sans doublons)

s = {1, 2, 3, 2}    # → {1, 2, 3}
s.add(4)
3 in s              # True

Quand utiliser quoi ?

Besoin Structure
Ordre important, modifs liste
Constant, hashable tuple
Recherche par clé dict
Unicité, appartenance rapide set

Méthodes

Choisir une structure

  1. 1Recherche par clé fréquente ? → dict
  2. 2Unicité importante ? → set
  3. 3Données fixes (coordonnées, etc.) ? → tuple
  4. 4Sinon → liste

Astuces & pièges

Astuce de bg

Pour vérifier si un élément est présent dans une grande collection, utilise un set : O(1) au lieu de O(n) pour une liste.

Piège à éviter

Les dicts et sets utilisent le HASH des clés. Donc clés doivent être immutables (pas de liste comme clé).

Teste-toi

1.Structure pour cherher rapidement par clé :

2.{1,2,2,3} renvoie :