Geekflare est soutenu par son public. Nous pouvons percevoir des commissions d'affiliation sur les liens d'achat présents sur ce site.
En Développement Dernière mise à jour : 16 septembre 2023
Partager sur :
Invicti Web Application Security Scanner - la seule solution qui offre une vérification automatique des vulnérabilités avec Proof-Based Scanning™.

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 numet 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 nombre num est porté à la puissance pow.

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.

liste-compréhension-syntaxe
Syntaxe de compréhension des listes Python (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 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 chaque num. Remplacez donc <do-this> avec num**3.
  • <all-items>: La variable de bouclage est num-les différents numéros de la liste.
  • <this-list>: La liste existante est la suivante nums.
  • 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 chaque author 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 suivante zip(*iterables). Il renvoie ensuite un itérateur de tuples, où le tuple i contient l'élément i de chacune des tables itératives.

L'image suivante décrit cela en détail. Vous avez 4 valeurs dans l_arr et b_arrLa 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.

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

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 :

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

▶ 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 renvoie True s'il s'agit d'un chiffre (0-9) ; sinon, il renvoie False.

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 fonction isdigit() 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 de la fruits liste qui commence par b. Vous pouvez utiliser le startswith() pour écrire la condition.

Les <str>.startswith('char') retours True si commence par 'char' ; sinon il retourne 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 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.

  • Bala Priya C
    Auteur
Merci à nos sponsors
D'autres lectures intéressantes sur le développement
Alimentez votre entreprise
Quelques outils et services pour aider votre entreprise à se développer.
  • Invicti utilise le Proof-Based Scanning™ pour vérifier automatiquement les vulnérabilités identifiées et générer des résultats exploitables en quelques heures seulement.
    Essayez Invicti
  • Web scraping, proxy résidentiel, proxy manager, web unlocker, search engine crawler, et tout ce dont vous avez besoin pour collecter des données web.
    Essayez Brightdata
  • Monday.com est un système d'exploitation tout-en-un qui vous aide à gérer vos projets, vos tâches, votre travail, vos ventes, votre CRM, vos opérations, vos flux de travail et bien plus encore.
    Essayez le lundi
  • Intruder est un scanner de vulnérabilité en ligne qui détecte les faiblesses de votre infrastructure en matière de cybersécurité, afin d'éviter des violations de données coûteuses.
    Essayer l'intrus