En Python, les compréhensions de listes permettent de créer de nouvelles listes à partir d'itérables existants, comme les listes, les chaînes de caractères et les tuples.
Leur syntaxe succincte vous permet de créer de nouvelles listes en une seule ligne de code. Ce tutoriel vous apprendra à le faire.
Au cours des prochaines minutes, vous apprendrez :
- Comment créer une nouvelle liste en utilisant
for
boucles, - La syntaxe pour utiliser les compréhensions de listes en Python, et
- Comment modifier les compréhensions de listes avec
if
déclaration conditionnelle.
En outre, vous coderez également plusieurs exemples qui vous aideront à mieux comprendre les compréhensions de listes.
Plongeons dans le vif du sujet.
Comment créer des listes en Python à l'aide de boucles for
Supposons que vous disposiez d'une liste de nombres nums
. Et vous aimeriez créer une autre liste qui contienne le cube de tous les nombres dans nums
. Voici comment procéder à l'aide d'un for
en Python :
nums = [2,3,5,7]
num_cubes = []
for num in nums:
num_cubes.append(num**3)
print(num_cubes)
# Output
[8, 27, 125, 343]
Dans le code ci-dessus, nous avons les étapes suivantes :
- Initialiser une liste vide
num_cubes
. - Boucle à travers le
nums
liste. - Accéder à chaque numéro
num
et calculer son cube à l'aide de l'opérateur d'exponentiation :num**3
. - Enfin, ajoutez la valeur cubée à la liste
num_cubes
Remarque : En Python, l'opérateur d'exponentiation
**
est utilisé avec la syntaxe :num**pow
-le nombrenum
est porté à la puissancepow
.
Cependant, vous pouvez le faire plus facilement en utilisant la compréhension de liste en Python. Commençons par apprendre sa syntaxe.
Syntaxe de compréhension des listes en Python
La syntaxe générale pour la compréhension des listes est présentée ci-dessous.
<new_list> = [<expression> for <item> in <iterable>]
Analysons la syntaxe ci-dessus.
- En Python, les listes sont délimitées par une paire d'éléments de type carré parenthèses
[]
-C'est pourquoi il est nécessaire de placer la déclaration de compréhension de liste dans l'espace suivant[]
. <item>
en<iterable>
signifie que vous effectuez une boucle dans un itérable. Tout objet Python dans lequel vous pouvez effectuer des boucles et accéder à des éléments individuels, comme les listes, les tuples et les chaînes, est un itérable.<expression>
est le résultat que vous souhaitez calculer pour chaque<item>
dans le<iterable>
.
Cela semble simple, non ?
En substance, vous souhaitez faire quelque chose pour tous dans l'espace liste (ou n'importe quel itérable) pour obtenir un nouvelle liste.
Nous pouvons ainsi simplifier la syntaxe, comme le montre l'image ci-dessous.

Maintenant que vous avez appris la syntaxe, il est temps de commencer à coder. Vous pouvez utiliser L'IDE Python en ligne de Geekflare pour suivre ces exemples. Vous pouvez également les exécuter sur votre machine locale.
Exemples de compréhension de listes en Python
Dans la section précédente, vous avez créé une nouvelle liste num_cubes
de nums
. Commençons par réécrire cela en utilisant la compréhension de liste.
Utiliser la compréhension des listes avec les nombres
Utilisons maintenant la syntaxe simplifiée suivante :
<do-this>
: Ici, il faut cuber chaquenum
. Remplacez donc<do-this>
avecnum**3
.<all-items>
: La variable de bouclage estnum
-les différents numéros de la liste.<this-list>
: La liste existante est la suivantenums
.- Et
[num**3 for num in nums]
est l'expression finale. ✅
En rassemblant tous ces éléments, nous obtenons l'extrait de code suivant :
num_cubes = [num**3 for num in nums]
print(num_cubes)
# Output
[8, 27, 125, 343]
Félicitations, vous avez codé votre première liste de compréhension.
Passons maintenant aux chaînes de caractères Python.
Utilisation de la compréhension des listes avec les chaînes de caractères
Supposons que vous disposiez de la liste authors
Vous pouvez réécrire la liste ci-dessous avec vos auteurs préférés.
authors = ["jane austen","george orwell","james clear","cal newport"]
Remarquez que les noms des auteurs sont en minuscules dans la liste ci-dessus. Nous voudrions maintenant les formater dans le format titre et les stocker dans une nouvelle liste appelée author_list
.
Remarque : En Python, la méthode string titre() accepte une chaîne de caractères comme argument et renvoie une copie de la chaîne formatée dans la casse du titre. C'est-à-dire que la première lettre de chaque mot est en majuscule :
First-name Last-name
Voici donc ce que vous devez faire :
- à travers la boucle
authors
et pour chaqueauthor
dans la liste, - appel
author.title()
pour obtenir une copie de la chaîne avec son titre.
Le code Python correspondant est présenté ci-dessous :
authors = ["jane austen","george orwell","james clear","cal newport"]
author_list = [author.title() for author in authors]
print(author_list)
# Output
['Jane Austen', 'George Orwell', 'James Clear', 'Cal Newport']
Dans la sortie ci-dessus, observez comment les noms de tous les auteurs ont été formatés dans la casse du titre - ce qui est ce que nous voulions.
Utilisation de la compréhension de liste avec des listes multiples
Jusqu'à présent, vous avez appris à utiliser la compréhension de liste pour créer de nouvelles listes à partir d'une liste existante. Nous allons maintenant apprendre à créer une nouvelle liste à partir de plusieurs listes.
Par exemple, considérez le problème suivant : vous avez deux listes l_arr
et b_arr
contenant les longueurs et largeurs de 4 rectangles.
Et vous devez créer une nouvelle liste area
qui comprend l'aire de ces 4 rectangles. Rappelez-vous, area = length * breadth
.
l_arr = [4,5,1,3]
b_arr = [2,1,7,9]
Vous aurez besoin d'éléments des deux listes (l_arr
et b_arr
) afin de calculer la surface. Et vous pouvez le faire en utilisant la fonction Python zip()
fonction.
Remarque : En Python, la fonction
zip()
prend en argument une ou plusieurs tables itératives avec la syntaxe suivantezip(*iterables)
. Il renvoie ensuite un itérateur de tuples, où le tuplei
contient l'élémenti
de chacune des tables itératives.
L'image suivante décrit cela en détail. Vous avez 4 valeurs dans l_arr
et b_arr
La plage d'indices est donc comprise entre 0 et 3. Comme vous pouvez le voir, le tuple 0
contient l_arr[0]
et b_arr[0]
, tuple 1
contient l_arr[1]
et b_arr[1]
et ainsi de suite.

Par conséquent, vous pouvez passer en boucle par zip(l_arr,b_arr)
comme indiqué ci-dessous :
area = [l*b for l,b in zip(l_arr,b_arr)]
print(area)
# Output
[8,5,7,27]
Dans la section suivante, vous apprendrez à utiliser des instructions conditionnelles à l'intérieur d'une compréhension de liste.
Compréhension des listes en Python avec la syntaxe des conditions
Commençons par développer la syntaxe précédente pour la compréhension des listes.
Voici la syntaxe :
<new_list> = [<expression> for <item> in <iterable> if <condition>]
Au lieu de calculer la <expression>
pour tous les articles, vous ne souhaitez le faire que pour les articles qui satisfont à un critère spécifique. <condition>
-où, condition := True
. Cela conduit à une syntaxe simplifiée, comme indiqué ci-dessous :

▶ Sur ce, passons aux exemples de code.
Compréhension des listes en Python avec des exemples de conditions
#1. On vous donne la chaîne "J'apprends Python en 2022. Vous souhaitez obtenir une liste de tous les chiffres de cette chaîne. Comment faire ?
En Python,
<char>.isdigit()
agit sur un personnage<char>
et renvoieTrue
s'il s'agit d'un chiffre (0-9) ; sinon, il renvoieFalse
.
L'extrait de code ci-dessous montre comment vous pouvez collecter la liste de tous les chiffres de la chaîne de caractères str1
.
str1 = "I'm learning Python3 in 2022"
digits = [char for char in str1 if char.isdigit()]
print(digits)
# Output
['3', '2', '0', '2', '2']
Dans le code ci-dessus :
- vous bouclez la chaîne
str1
, - accéder à chaque
char
pour vérifier s'il s'agit d'un chiffre à l'aide de la fonctionisdigit()
et - ajouter
char
à la nouvelle listedigits
uniquement s'il s'agit d'un chiffre.
Prenons un autre exemple.
#2. Vous avez une liste de fruits.🍊 Et vous aimeriez créer une liste. starts_with_b
qui contient tous les fruits de la fruits
liste qui commence par b
. Vous pouvez utiliser le startswith()
pour écrire la condition.
Les
<str>.startswith('char')
retoursTrue
si commence par 'char' ; sinon il retourneFalse
.
fruits = ['blueberry','apple','banana','orange','cherry']
starts_with_b = [fruit for fruit in fruits if fruit.startswith('b')]
print(starts_with_b)
# Output
['blueberry', 'banana']
Dans le résultat ci-dessus, nous obtenons 'blueberry'
et 'banana'
qui sont les deux fruits commençant par 'b'
dans le fruits
comme nous nous y attendions.
Voilà qui conclut notre discussion sur la compréhension des listes.
Conclusion
J'espère que ce tutoriel vous a aidé à comprendre les compréhensions de listes en Python.
Résumons :
- Vous pouvez utiliser [ pour de ] pour créer une nouvelle liste en utilisant la compréhension de liste.
- En outre, vous pouvez utiliser la syntaxe suivante [ pour dans si ] avec le
if
déclaration conditionnelle.
En outre, vous avez codé plusieurs exemples. Dans une prochaine étape, vous pouvez essayer de réécrire certaines de vos boucles Python existantes pour la création de listes à l'aide de la compréhension de liste. Bon codage ! Jusqu'au prochain tutoriel 😄
Vous pouvez maintenant voir comment convertir une liste en dictionnaire ou apprendre comment gérer les fichiers en Python.