1. Les tableaux dynamiques (listes Python)

En Python, une liste est un tableau dynamique indexé dont les éléments sont des pointeurs vers des objets en mémoire. Elle autorise un accès instantané par index en O(1), mais l’insertion ou la suppression au début d’une liste impose de décaler tous les éléments subséquents, opération coûteuse en O(n) :

nombres = [10, 20, 30, 40]
nombres.append(50)       # O(1) amorti
nombres.insert(0, 5)     # O(n) : décalage de tous les indices

2. Les compréhensions de listes : élégance et vélocité

Les compréhensions fournissent une syntaxe concise pour filtrer et transformer des collections, exécutées directement en C par l’interpréteur Python :

valeurs = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
# Filtrage des pairs et calcul de leur carré
carres_pairs = [x ** 2 for x in valeurs if x % 2 == 0]
print(carres_pairs)  # [4, 16, 36, 64, 100]

3. Tuples immuables et ensembles (sets)

Les tuples sont des collections immuables garantissant l’intégrité des données transmises et autorisant leur utilisation comme clés de dictionnaires. Les ensembles (sets) représentent des collections non ordonnées d’éléments uniques ; grâce à leur table de hachage interne, le test d’appartenance (element in mon_set) s’effectue en temps constant O(1), contre O(n) pour une liste standard.

Synthèse pédagogique : Choisir la bonne structure de données dès la phase de modélisation est le levier le plus efficace pour décupler les performances d’un logiciel.