Compréhension de listes en Python (list comprehension)
Première générale Spé · Mathématiques Spé 1ère
À retenir
• [f(x) for x in sequence] applique f à chaque élément x de la séquence. • [f(x) for x in sequence if test(x)] ne garde que les éléments pour lesquels test(x) vaut True. • Une compréhension remplace le schéma « liste vide, boucle for, append » en une seule ligne.
Le cours
1. Syntaxe Une liste en compréhension crée une liste en une ligne, en appliquant une expression à chaque élément d'une séquence, éventuellement filtrée : [expression for x in sequence] ; [expression for x in sequence if condition]. Elle se lit comme l'écriture mathématique d'un ensemble : [x**2 for x in range(5)] correspond à \x^2 x \0, 1, 2, 3, 4\\ et donne [0, 1, 4, 9, 16]. 2. Équivalence avec une boucle Les deux constructions suivantes donnent la même liste [1, 8, 27, 64] : cubes = [k**3 for k in range(1, 5)] cubes = [] for k in range(1, 5): cubes.append(k**3) La compréhension remplace le schéma « liste vide, boucle for, append » ; le filtre if correspond à un if placé dans la boucle, autour du append. 3. Usages en mathématiques • Termes d'une suite explicite : [3 * n - 2 for n in range(6)] donne [-2, 1, 4, 7, 10, 13]. • Images par une fonction : [f(x) for x in valeurs]. • Filtrer une liste : [x for x in L if x > 0] garde les éléments strictement positifs. 4. Attention Une compréhension ne remplace qu'une boucle for : pour s'arrêter à un seuil inconnu à l'avance, il faut une boucle while avec append.
Dans ce chapitre
- Variables, affectations, boucles for/while et tests conditionnels de Seconde
- Instructions conditionnelles et logique booléenne en Python de Seconde
- Boucles for, while et parcours de séquences avec range de Seconde
- Variables, types et affectation
- Instructions conditionnelles
- Boucles bornées et non bornées
- Fonctions informatiques et modularité
- Créer et définir une liste
- Indexation et manipulation d'éléments
- Parcourir et itérer sur une liste
- Compréhension de listes en Python (list comprehension)
- Modéliser suites et ensembles avec des listes
- Algorithmes de recherche dichotomique et de seuil en Python
- Bilan : Synthèse et méthode sur Algorithmique et programmation en Python