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 :

Exercices corrigés

Tu galères ? Normal. Cherche d'abord, regarde le corrigé après.

EX. 01Facile

Différence entre liste, tuple, dictionnaire en Python ?

EX. 02Moyen

Écrire une fonction qui compte le nombre d'occurrences de chaque lettre dans une chaîne (dictionnaire).

Pour aller plus loin

Vidéos, fiches et exos vérifiés (Maths et tiques, Lumni, Khan Academy, Physagreg…).