Mathématiques · Terminale générale

Listes en Python : construire, parcourir et modifier sans effet caché

Cours de Terminale spécialité mathématiques : Listes en Python : construire, parcourir et modifier sans effet caché. Méthodes, exemples, activités guidées et.

  1. Comprendre
  2. Mettre en pratique
  3. Vérifier
  4. Mémoriser
  • 8activités avec l'accès complet
  • 8questions avec l'accès complet
  • 6cartes avec l'accès complet
  • 6sources citées

Objectifs du parcours

Ce que tu vas savoir faire

  • Décrire ordre, indices, doublons et mutabilité d’une liste Python.
  • Générer une liste en extension, par ajouts successifs ou en compréhension.
  • Lire et modifier un élément avec un indice valide.
  • Distinguer append, extend et insert.
  • Distinguer remove, pop et del et anticiper leurs erreurs possibles.
  • Parcourir une liste par valeurs, indices ou couples indice-valeur.
  • Construire et tracer un accumulateur, un compteur ou une liste filtrée.
  • Distinguer alias et copie et éviter une mutation dangereuse pendant le parcours.
Le chapitre en bref

Une liste Python conserve un ordre, autorise les doublons et se modifie en place. Pour l'utiliser dans un algorithme de Terminale, il faut distinguer valeur et indice, choisir entre ajout, extension ou suppression, puis contrôler les alias créés par une affectation.

1. Qu’est-ce qu’une liste conserve exactement ?

En Terminale, une liste sert à conserver l’état fini d’un calcul : termes successifs d’une suite, résultats d’une simulation ou valeurs d’une série. L’ordre et les répétitions font partie des données. Dans L = [12, 15, 12], les deux valeurs 12 occupent des positions différentes et ne doivent pas être fusionnées.

Les indices vont de 0 à len(L)−1. Une liste est mutable : modifier L[i] change l’objet existant, ce qui est utile pour mettre à jour un état mais impose de savoir quels noms désignent cet objet. Le contrat d’un algorithme doit préciser contenu, longueur et sens de chaque position.

2. Comment passer d’une règle à une liste ?

Une construction par boucle rend visibles l’initialisation et les états intermédiaires. Pour calculer les valeurs u0,…,un d’une suite récurrente, on place d’abord u0 dans une liste, puis chaque tour calcule le terme suivant à partir du dernier terme disponible et l’ajoute avec append.

Une compréhension convient mieux lorsque chaque valeur dépend directement de l’indice, par exemple [f(k) for k in range(n+1)]. Elle ne remplace pas naturellement une récurrence où le nouveau terme dépend de l’état précédent. Choisir la construction revient donc à expliciter la dépendance mathématique, pas seulement à raccourcir le code.

3. La tâche porte-t-elle sur une valeur ou sur sa position ?

Lire L[i] suppose que l’indice appartient au domaine valide. Dans une recherche de seuil, i peut représenter le nombre d’itérations déjà effectuées ; dans une simulation, il peut repérer l’expérience correspondante. Sa signification mathématique doit être écrite avant la boucle.

Les indices négatifs permettent de lire depuis la fin, notamment L[-1] pour le dernier état calculé. Ils restent dangereux sur une liste vide et ne corrigent pas un décalage entre rang mathématique et indice Python. Un tableau de correspondance rang, indice et valeur prévient ces erreurs.

4. Pourquoi append([3,4]) et extend([3,4]) ne donnent-ils pas la même liste ?

append(x) ajoute un seul objet x, alors que extend(iterable) ajoute successivement les éléments parcourus. Dans un algorithme de simulation, ajouter une liste de résultats avec append crée une liste imbriquée ; l’étendre concatène les résultats au même niveau. Ces structures ne répondent pas à la même question.

Ces méthodes modifient la liste sur place et renvoient None. L’écriture L = L.append(x) remplace donc L par None. Avant chaque mutation, prévois la longueur, la forme de l’élément ajouté et le résultat attendu ; vérifie-les ensuite avec un petit cas contrôlable.

5. Veux-tu supprimer une valeur ou une position ?

Supprimer pendant un calcul change les positions suivantes. remove(x) retire la première occurrence égale à x ; pop(i) retire et renvoie l’élément d’indice i ; del L[i] supprime sans valeur de retour. Le choix dépend de la donnée connue : valeur, position ou élément à réutiliser.

Pour filtrer des résultats, construire une nouvelle liste est souvent plus sûr que supprimer au fil d’un parcours. Cette stratégie conserve les données sources, rend la condition visible et évite de sauter des éléments lorsque la longueur se modifie. Elle facilite aussi la comparaison entre échantillon initial et échantillon retenu.

6. As-tu besoin de la valeur, de l’indice ou des deux ?

Le parcours direct for x in L convient lorsque seule la valeur intervient. enumerate(L) fournit simultanément indice et valeur, utile pour repérer le premier rang où une suite dépasse un seuil. range(len(L)) est justifié lorsque l’algorithme doit modifier les cases ou comparer des positions.

Une boucle sur une liste vide n’exécute aucun tour. L’état initial d’un accumulateur devient alors le résultat : 0 peut convenir pour une somme, mais une moyenne exige de traiter l’effectif nul. Le bon parcours dépend donc aussi des cas limites définis par le problème.

7. Comment suivre ce que la boucle a déjà accompli ?

Un accumulateur doit posséder un sens invariant après chaque tour. Dans une simulation de Bernoulli, un compteur c peut représenter le nombre de succès parmi les essais déjà traités. Dans une recherche de maximum, la variable mémorisée représente la meilleure valeur observée jusqu’à l’indice courant.

Écrire cet invariant permet de choisir l’initialisation, l’ordre du test et la mise à jour. Une table de trace avec indice, valeur courante, condition et état après mise à jour révèle les erreurs que le seul résultat final peut cacher, notamment les décalages d’un tour.

8. Pourquoi B=A peut-il modifier A sans le nommer ?

Après B = A, A et B désignent la même liste : une mutation par l’un est visible par l’autre. A.copy() crée une nouvelle liste extérieure, suffisante pour une liste simple mais pas pour isoler automatiquement toutes les sous-listes d’une structure imbriquée.

Cette distinction compte lorsque plusieurs trajectoires numériques partent d’un même état ou lorsqu’une fonction doit préserver ses données d’entrée. Le contrôle final compare l’identité des objets, leurs valeurs et la conservation de la source. Construire une liste résultat séparée est souvent le contrat le plus lisible.

Erreurs fréquentes

L'essentiel à mémoriser

  • Les indices commencent à zéro.
  • Une compréhension produit une nouvelle liste.
  • Lire, remplacer et ajouter sont trois opérations distinctes.
  • append et extend n’ajoutent pas la même chose.
  • Valeur et position choisissent la suppression.
  • Le besoin choisit le type de parcours.
  • Un invariant donne un sens à chaque tour.
  • Alias et copie produisent des mutations différentes.

Vérifier sa compréhension

Réviser au bon moment

Poursuivre le parcours

Cours terminé

Poursuis ta progression

Choisis une formule Maxdecours pour poursuivre depuis ton parcours. Après le paiement, tu pourras créer tes identifiants.

Chapitre suivantHistoire des mathématiques : lire une source, comprendre une méthode

La formule donne accès aux outils d'apprentissage actif et à la continuité du parcours.

Sources et traçabilité

Dernière vérification : 2026-08-12

  1. Programme de l'enseignement de spécialité de mathématiques de la classe terminale, Ministère de l'Éducation nationale, consulté le 2026-08-12.
  2. Programmes et ressources en mathématiques - voie G, Éduscol, consulté le 2026-08-12.
  3. Arrêté du 18 mars 2026 — programme de spécialité de mathématiques de Première, Bulletin officiel de l’Éducation nationale, consulté le 2026-08-11.
  4. Annexe — Programme de spécialité de mathématiques de Première 2026, Ministère de l’Éducation nationale, consulté le 2026-08-11.
  5. Programmes et ressources en mathématiques — voie générale et technologique, Éduscol — Ministère de l’Éducation nationale, consulté le 2026-08-11.
  6. Structures de données — compléments sur les listes, Documentation officielle Python, consulté le 2026-08-11.

Tu sais organiser ton raisonnement et vérifier les notions importantes

Poursuis avec des exercices guidés de Terminale.

Reprends les étapes du cours, vérifie tes distinctions et entraîne-toi sur des situations graduées.

  • Exercices de raisonnement
  • Quiz expliqués
  • Cartes de révision