Itérer sur les éléments d'une liste - Liste de compréhension
Itérer sur les éléments d’une liste – Liste en compréhension
L’objectif du cours est, à travers des exemples, de montrer l’itération sur les éléments d’une liste, que l’on peut construire en compréhension.
En parcourant une liste initiale et en effectuant une opération, on crée une nouvelle liste, qui est une sous liste de la liste principale. C’est la construction en compréhension.
On définit un tableau L
par :L = [10, 20, 30, 40, 50]
On souhaite calculer la somme des éléments de L.
On commence pour cela par créer une variable qui contiendra la somme, que l’on initialise à 0.
somme = 0
for i in L:
#on parcourt les éléments du tableau L somme = somme + i
print(somme)
>> 150
On peut créer une liste en compréhension à l’aide de liste pré enregistrée.
Par exemple, on souhaite créer une liste contenant les entiers pairs compris entre $1$ et $12$ à l’aide d’une liste contenant tous les entiers entre $1$ et $12$.
pair = []
#on crée une liste qui contiendra les entiers pairsfor n in range(1,13):
#on crée une liste d’entiers allant de 1 à 12
if n%2==0:
#si le reste de la division euclidienne de l’entier par 2 est nul, alors le nombre est pair
pair.append(n)
#on ajoute à la liste pair l’entier nprint(pair)
>> [2, 4, 6, 8, 10, 12]
Une manière plus succincte de définir pair
en compréhension est :
pair = [n for n in range(1,13) if n%2==0]
On souhaite ici créer une liste carre
en compréhension.
carre = []
for i in range(1,16):
#on parcourt les entiers allant de 1 à 15 inclus
carre.append(n**2)
#on ajoute à la liste carre le carré de nprint(carre)
>> [1, 4, 9, 16, 36, 49, 64, 81, 100, 121, 144, 169, 196, 225]
Une autre manière de créer la liste carre est :carre = [n**2 for n in range(1, 16)]
Enfin, on souhaite créer une liste syracuse
à partir d’une liste d’entiers de 1 à 20.
Si l’élément est pair, on le divise par deux, sinon on multiplie l’élement par 3 puis on ajoute 1.
syracuse = [n/2 if n%2==0 else 3*n+1 for n in range(1, 21)]