Générer une liste
Générer une liste – PYTHON 3
Il existe deux manières de générer une liste en Python : en extension et en compréhension.
Pour rappel, une liste est ordonnée : chaque élément occupe une place précise dans la liste. Mais ces éléments ne sont pas forcément classés par ordre croissant.
Dans la suite, les lignes contenant >>
référent à une sortie faite par le programme.
1) Générer une liste en extension
On peut énumérer les éléments d’une liste.
Exemple :L = [2, 4, 6]
On peut alors rajouter un élément à cette liste à l’aide de l’instruction .append(X)
qui rajoute X
à la fin de la liste.
Exemple :L.append(3)
En demandant à l’ordinateur la nouvelle valeur de L
, on a alors :L
>> [2, 4, 6, 3]
2) Générer une liste par compréhension
Pour générer une liste par compréhension, il faut qu’une liste soit déjà créée au préalable.
A partir des éléments de cette liste, on crée une nouvelle liste qui dépend donc de la précédente : on dit alors que cette nouvelle liste est définie en compréhension.
Exemple 1 :
On souhaite générer une liste contenant les 7 premiers multiples de 5
On crée une liste vide puis une liste d’entiers initiale par extension.
mult = []
ent = [1, 2, 3, 4, 5, 6, 7]
On prend ensuite chaque élément de ent
que l’on multiplie par 5 et on ajoute le résultat à la liste mult
, pour avoir la liste des 7 premiers multiples de 5.
for k in ent :
mult.append(k*5)
Pour connaitre la nouvelle valeur de la liste mult
, on écrit son nom dans le programme.
mult
>> [5, 10, 15, 20, 25, 30, 35]
Exemple 2 :
Les 7 premiers cubes
On définit à nouveau une liste ent contenant les 7 premiers entiers puis on définit la liste cube directement à l’intérieur des crochets.
ent = [1, 2, 3, 4, 5, 6, 7]
cube = [k**3 for k in ent]
La commande ** signifie puissance. On peut à nouveau s’assurer que la liste ainsi créée contient bien les éléments attendus.
cube
>> [1, 8, 27, 64, 125, 216, 343]
Exemple 3 :
Nombres pairs dans une liste.
Il est possible d’insérer des tests lors de la génération d’une liste.
On souhaite extraire d’une liste initiale les entier pairs.
La liste initiale est la suivante :
L = [1, 2, 3, 5, 6, 8, 11, 12]
Pour trouver si un nombre est pair on utilise le fait que sa division euclidienne par 2 est nulle si et seulement si il est pair.
Pour trouver le reste d’un entier k dans la division euclidienne par un entier n, on écrit la commande :
k%n
Ainsi, la commande pour générer la liste est la suivante :
pair = [k for k in L if k%2 == 0]
Cette instruction signifie que l’on garde k
, pour k
dans la liste L
, si le reste de la division euclidienne de k
par 2 vaut 0.
On remarquera l’utilisation de ==
nécéssaire pour effectuer un test d’égalité. Le symbole =
réfère à une affection de valeur à la variable.
On regarde alors les valeurs de pair
.
pair.
>> [2, 6, 8, 12]