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
- 1Recherche par clé fréquente ? → dict
- 2Unicité importante ? → set
- 3Données fixes (coordonnées, etc.) ? → tuple
- 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 :