En Python, les compréhensions de liste vous aident à créer de nouvelles listes à partir d'itérables existants, comme des listes, des chaînes et des tuples.

Leur syntaxe succincte vous permet de créer de nouvelles listes en une seule ligne de code. Et ce tutoriel vous apprendra comment vous pouvez 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 liste en Python, et
  • Comment modifier les compréhensions de liste avec if énoncé conditionnel.

De plus, vous allez également coder plusieurs exemples qui vous aideront à mieux comprendre les compréhensions de liste.

Plongeons dedans.🌊

How to Create Python Lists Using for Loops

Supposons que vous ayez une liste de numéros nums. Et vous aimeriez créer une autre liste qui contient le cube de tous les nombres dans nums. Voici comment procéder à l'aide d'un for boucle 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 calculez son cube à l'aide de l'opérateur d'exponentiation : num**3.
  • Enfin, ajoutez la valeur au cube à la liste num_cubes

Remarque : En Python, l'opérateur d'exponentiation ** est utilisé avec la syntaxe : num**pow-le nombre num est élevé au pouvoir pow.

Cependant, vous pouvez le faire plus facilement en utilisant la compréhension de liste en Python. Continuons à apprendre sa syntaxe.

Python List Comprehension Syntax

La syntaxe générale pour la compréhension de liste 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 de crochets []- par conséquent, vous devez inclure la déclaration de compréhension de la liste dans [].
  • <item> in <iterable> signifie que vous parcourez un itérable. Tout objet Python que vous pouvez parcourir et accéder à des éléments individuels, tels que des listes, des tuples et des chaînes, est itérable.
  • <expression> est la sortie que vous souhaitez calculer pour chaque <item> à l' <iterable>.

Et cela semble simple, n'est-ce pas ?

En gros, vous aimeriez do quelque chose pour tous articles dans le liste (ou tout itérable) pour obtenir un Nouvelle liste.

En utilisant cela, nous pouvons simplifier la syntaxe, comme le montre l'image ci-dessous.

liste-compréhension-syntaxe
Python List Comprehension Syntax (Image de l'auteur)

Maintenant que vous avez appris la syntaxe, il est temps de commencer à coder. Vous pouvez utiliser L'IDE Python en ligne de Geekflare à suivre avec ces exemples. Ou vous pouvez les exécuter sur votre machine locale.

Python List Comprehension Examples

Dans la section précédente, vous avez créé une nouvelle liste num_cubes À partir de nums. Commençons par réécrire cela en utilisant la compréhension de liste.

Utilisation de la compréhension de liste avec des nombres

Utilisons maintenant la syntaxe simplifiée comme suit :

  • <do-this>: Ici, il faut cuber chaque num. Remplace donc <do-this> en num**3.
  • <all-items>: La variable de bouclage est num—les numéros individuels de la liste.
  • <this-list>: La liste existante que nous avons est nums.
  • Et [num**3 for num in nums] est l'expression finale. ✅

En mettant tout cela ensemble, nous avons 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 compréhension de liste.🎉

Passons à autre chose, travaillons avec des chaînes Python.

Utilisation de la compréhension de liste avec des chaînes

Supposons que vous ayez 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 comment les noms des auteurs sont en minuscules dans la liste ci-dessus. Nous voudrions maintenant les formater dans le titre cas et les stocker dans une nouvelle liste appelée author_list.

Remarque : En Python, la méthode string Titre() accepte une chaîne 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 tout ce que vous devez faire :

  • boucle à travers le authors liste et pour chaque author dans la liste,
  • Appelez-nous author.title() pour obtenir une copie en casse de titre de la chaîne.

Et le code Python pour cela est illustré 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 que nous voulions.

Utilisation de la compréhension de liste avec plusieurs listes

Jusqu'à présent, vous avez appris à utiliser la compréhension de liste pour créer de nouvelles listes à partir d'une liste existante. Voyons maintenant comment créer une nouvelle liste à partir de plusieurs listes.

Par exemple, considérez ce problème : vous avez deux listes l_arr et un 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. Rappelles toi, 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 un b_arr) afin de calculer l'aire. Et vous pouvez le faire en utilisant Python zip() la fonction.

Remarque : En Python, le zip() la fonction prend un ou plusieurs itérables comme arguments avec la syntaxe zip(*iterables). Il renvoie ensuite un itérateur de tuples, où le tuple i contient l'élément i de chacun des itérables.

L'image suivante décrit cela en détail. Vous avez 4 valeurs dans l_arr et un b_arr, donc la plage d'indices est de 0 à 3. Comme vous pouvez le voir, le tuple 0 contient l_arr[0] et un b_arr[0], tuple 1 contient l_arr[1] et un b_arr[1], Et ainsi de suite.

fonction python-zip
Fonction Python zip() (Image de l'auteur)

Par conséquent, vous pouvez parcourir 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 dans une compréhension de liste.

Python List Comprehension with Condition Syntax

Commençons par construire sur la syntaxe précédente pour la compréhension de liste.

Voici la syntaxe :

<new_list> = [<expression> for <item> in <iterable> if <condition>]

Au lieu de calculer le <expression> pour tous les articles, vous ne souhaitez le faire que pour les articles qui répondent à un critère spécifique <condition>-où, condition := True. Et cela conduit à une syntaxe simplifiée comme indiqué :

liste-compréhension-avec-condition-syntaxe
Compréhension de liste Python avec syntaxe de condition (Image de l'auteur)

▶ Sur ce, passons aux exemples de code.

Python List Comprehension with Condition Examples

# 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. Alors, comment faites-vous?

En Python, <char>.isdigit() agit sur un personnage <char> et retourne True si c'est un chiffre (0-9); sinon ça revient False.

L'extrait de code ci-dessous montre comment vous pouvez collecter la liste de tous les chiffres de la chaîne 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 faites une boucle dans la chaîne str1,
  • accéder à chacun char pour vérifier s'il s'agit d'un chiffre à l'aide de isdigit() méthode, et
  • ajouter char à la nouvelle liste digits 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 du fruits liste commençant par b. Vous pouvez utiliser le startswith() méthode pour écrire la condition.

Les <str>.startswith('char') Retours True si commence par 'char'; sinon ça revient False.

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 la sortie ci-dessus, nous obtenons 'blueberry' et un 'banana' quels sont les deux fruits qui commencent par 'b' à l' fruits liste, comme on s'y attendait.

Et cela conclut notre discussion sur la compréhension des listes.

Conclusion

J'espère que ce tutoriel vous a aidé à comprendre les compréhensions de liste en Python.

Résumons:

  • Vous pouvez utiliser [ pour dans ] pour créer une nouvelle liste en utilisant la compréhension de liste.
  • De plus, vous pouvez utiliser la syntaxe [ pour dans si ] la if énoncé conditionnel.

De plus, vous avez également 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 regarder comment convertir une liste en dictionnaire ou apprendre comment gérer les fichiers en Python.