Voici un cours qui t’apprendra à créer des listes par compréhension.
Dès qu’un code sera afficher dans ce cours, écris-le dans Thonny et exécute-le.
1. Introduction
Les listes en compréhension en Python sont une façon concise et élégante de créer des listes. Elles permettent de générer des listes en une seule ligne, en utilisant des expressions conditionnelles et des boucles intégrées dans une structure compacte.
Syntaxe de base avec range
:
[nouvel_element for element in range(début, fin)]
nouvel_element
: la transformation que vous souhaitez appliquer à chaque nombre généré parrange
.for element in range(début, fin)
: la boucle qui génère chaque nombre de la plage entredébut
etfin
.
Exemple :
nombres = [n for n in range(10)]
print(nombres) # Affiche : [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
2. Créer une liste de carrés de nombres
Si vous voulez obtenir les carrés de chaque nombre de 0 à 9, vous pouvez appliquer une transformation (n**2
) dans la compréhension de liste :
carres = [n**2 for n in range(10)]
print(carres) # Affiche : [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]
3. Créer une liste de nombres pairs
En ajoutant une condition, vous pouvez extraire uniquement les nombres pairs de 0 à 9 :
nombres_pairs = [n for n in range(10) if n % 2 == 0]
print(nombres_pairs) # Affiche : [0, 2, 4, 6, 8]
4. Créer une liste de nombres impairs
De la même manière, vous pouvez créer une liste des nombres impairs de 0 à 9 :
nombres_impairs = [n for n in range(10) if n % 2 != 0]
print(nombres_impairs) # Affiche : [1, 3, 5, 7, 9]
5. Créer une liste de multiples d’un nombre
Vous pouvez utiliser range
avec un pas pour obtenir des multiples de 3, par exemple :
multiples_de_3 = [n for n in range(0, 30, 3)]
print(multiples_de_3) # Affiche : [0, 3, 6, 9, 12, 15, 18, 21, 24, 27]
6. Utiliser une condition if...else
avec range
Vous pouvez ajouter une condition if...else
pour appliquer des transformations différentes en fonction d’une condition. Par exemple, créer une liste indiquant si chaque nombre est « pair » ou « impair » de 0 à 9 :
parite = ["pair" if n % 2 == 0 else "impair" for n in range(10)]
print(parite) # Affiche : ['pair', 'impair', 'pair', 'impair', 'pair', 'impair', 'pair', 'impair', 'pair', 'impair']
7. Créer une table de multiplication avec range
En utilisant une double boucle, vous pouvez générer une table de multiplication sous forme de tuples (multiplicande, multiplicateur, produit) :
table_multiplication = [(i, j, i * j) for i in range(1, 4) for j in range(1, 4)]
print(table_multiplication)
# Affiche : [(1, 1, 1), (1, 2, 2), (1, 3, 3), (2, 1, 2), (2, 2, 4), (2, 3, 6), (3, 1, 3), (3, 2, 6), (3, 3, 9)]
Comparaison avec les méthodes traditionnelles
Code traditionnel
nombres_pairs = []
for n in range(10):
if n % 2 == 0:
nombres_pairs.append(n)
print(nombres_pairs) # Affiche : [0, 2, 4, 6, 8]
En compréhension de liste
nombres_pairs = [n for n in range(10) if n % 2 == 0]
print(nombres_pairs) # Affiche : [0, 2, 4, 6, 8]
Avantages des Compréhensions de Liste
- Lisibilité : Les compréhensions de liste permettent de créer des listes en une seule ligne, rendant le code plus lisible.
- Performance : Elles sont souvent plus rapides que les boucles
for
traditionnelles. - Concision : Moins de lignes de code, sans compromettre la lisibilité.
Résumé
La compréhension de liste avec range
est un outil puissant pour générer des listes de valeurs en appliquant des transformations et des filtres facilement. Elle permet de simplifier les opérations basées sur des boucles, tout en restant concise et lisible. Il est aussi possible de l’utiliser à partir d’autres listes.