Comment utiliser la compréhension de liste en Python

Comment utiliser la compréhension de liste en Python

L'utilisation opportune de la compréhension de liste en Python peut vous faciliter les opérations de liste itératives. En plus d'être une seule ligne, il est plus lisible et s'exécute plus efficacement.





Cependant, vous pourriez vous énerver si vous ne savez pas comment l'utiliser. Cela peut même être plus frustrant si vous ne savez pas où l'appliquer dans votre code. Ici, nous allons vous montrer comment utiliser la compréhension de liste en Python avec quelques exemples concrets.





Qu'est-ce que la compréhension de liste en Python et comment ça marche ?

Créer une liste d'éléments avec Python est facile. Cependant, la tâche peut devenir un peu fastidieuse lorsque vous devez générer une liste de valeurs ou d'éléments à partir d'opérations mathématiques ou de chaînes. C'est alors que l'utilisation de la compréhension de liste peut s'avérer utile.





Un avantage de l'utilisation de la compréhension de liste est que vous pouvez effectuer plusieurs opérations dans une seule liste.

comment diffuser des jeux steam à la télévision

En revanche, il crée de nouveaux éléments et les ajoute à une liste vide qu'il déclare automatiquement. Donc, au lieu de faire une liste vide manuellement et de l'ajouter avec un pour boucle, la compréhension de liste de Python vous permet de le faire automatiquement sans vous soucier de la façon dont la nouvelle liste arrive.



Le terme « compréhension de liste » vient du fait que toutes les opérations sont dans une liste Python affectée à une variable nommée. Comme nous l'avons indiqué précédemment, il vous permet d'effectuer des opérations spécifiques dans une seule ligne de code. Il ajoute ensuite la sortie à une nouvelle liste.

En fin de compte, vous pouvez également utiliser la sortie d'une compréhension de liste à d'autres fins. C'est parce qu'il empile les expressions dans des variables distinctes. Vous pourrez donc vous y référer plus tard.





Par exemple, vous pourriez être scraper un site web avec BeautifulSoup . Supposons que vous ayez l'intention d'obtenir le nom de tous les articles et leurs prix sur le site Web.

Vous décidez alors de mettre les données grattées dans un fichier CSV ou Excel. La pratique idéale est de gratter le nom de tous les articles et leurs prix et de les placer tous les deux dans des colonnes séparées. Cependant, l'utilisation d'une compréhension de liste, dans ce cas, garantit que vous disposez des données grattées dans des variables dédiées. Vous pouvez ensuite convertir ces variables en un DataFrame Python ultérieurement.





Regardez l'exemple ci-dessous :

Products = [i.text for i in bs.find_all('name tags')]
Price = [i.text for i in bs.find_all('price tags')]

Une fois que vous avez obtenu les variables en boucle, vous pouvez ensuite les placer dans des colonnes séparées dans un DataFrame à l'aide de Python's Pandas.

Comment créer et utiliser une compréhension de liste en Python

Les pour loop est un itérateur essentiel dans une compréhension de liste. Généralement, une compréhension de liste en Python prend ce format :

ComprehensionVariable = [expression for items in list]

Impression CompréhensionVariable affiche le résultat du code ci-dessus sous forme de liste.

Attention toutefois à ne pas confondre une compréhension de liste avec une pour boucle.

Par exemple, faisons utiliser une boucle for ouverte pour obtenir une liste de tous les multiples de trois entre 1 et 30 :

myList = []
for i in range(1, 11):
myList.append(i * 3)
print(myList)
Output: [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

Pour comparer les deux, faisons la même chose en utilisant une compréhension de liste :

multiplesOf3 = [i*3 for i in range(1, 11)]
print(multiplesOf3)
Output = [3, 6, 9, 12, 15, 18, 21, 24, 27, 30]

Vous pouvez également utiliser une compréhension de liste avec des instructions conditionnelles. L'exemple de code ci-dessous imprime tous les nombres impairs compris entre 1 et 10 :

oddNumbers = [i for i in range(1, 11) if not i%2==2]
print(oddNumbers)
Output = [1, 3, 5, 7, 9]

Maintenant, réécrivons également le code ci-dessus en utilisant un open pour boucle:

myList = []
for i in range(1, 11):
if not i%2 == 0:
myList.append(i)
print(myList)
Output: [1, 3, 5, 7, 9]

En rapport: Comment ajouter une liste en Python

Une compréhension de liste accepte également les instructions if imbriquées :

oddNumbers = [i for i in range(1, 11) if not i%2==0 if i<4]
print(oddNumbers)
Output: [1, 3]

Il faut aussi un imbriqué pour boucle:

someNums = [[i*2 for i in range(1, 3)] for _ in range(4)]
print(someNums)

Vous pouvez également avoir une plaine imbriquée pour boucle dans une compréhension de liste :

someNums = [i*2 for i in range(1, 3) for k in range(4)]

Vous pouvez également manipuler des chaînes avec la compréhension de liste Python. Jetons un coup d'œil à la compréhension d'un compteur de mots ci-dessous :

word = ['This is a python list comprehension tutorial']
wordCounter = [i.count(' ') + 1 for i in word]
print(wordCounter)
Output: 7

Une compréhension de liste peut également accepter une fonction qui effectue une opération spécifique. Insérons une fonction multiplicateur qui obtient des nombres pairs dans une compréhension de liste pour voir comment cela fonctionne :

Numbers = [4, 7, 8, 15, 17, 10]
def multiplier(n):
multiple = n*2
return multiple
multipleEven = [multiplier(i) for i in Numbers if i%2==0]
print(multipleEven)
Output: [8, 16, 20]

Vous pouvez toujours écrire le code ci-dessus dans une seule fonction sans utiliser la compréhension. Mais une compréhension de liste est utile lorsque vous devez effectuer plusieurs itérations et placer chacune d'elles dans des variables distinctes.

Par exemple, vous pouvez effectuer une autre opération sur m et avoir une variable dédiée pour cela. Modifions la compréhension ci-dessus pour générer des nombres pairs à partir des impairs :

multipleEvenFromOdds = [multiplier(i) for i in Numbers if not i%2==0]
print(multipleEvenFromOdds)
Output: [14, 30, 34]

Dictionnaire et compréhensions d'ensembles

En plus d'une compréhension de liste, Python propose également un dictionnaire et une fonctionnalité de compréhension d'ensemble.

Jetez un œil à l'exemple de compréhension de dictionnaire ci-dessous pour voir comment cela fonctionne :

corresponding = {i: i*2 for i in range(10) if not i%2==0}
print(corr)
Output: {1: 2, 3: 6, 5: 10, 7: 14, 9: 18}

Le code ci-dessus parcourt la liste des nombres entre 1 et 9 et en fait les clés. Il dit ensuite à Python de multiplier chaque clé par deux. Enfin, il présente les résultats de cette opération sous forme de valeurs correspondantes pour chaque clé du tableau résultant.

En rapport: Comment fonctionnent les tableaux et les listes en Python

Une compréhension d'ensemble est un peu similaire à une compréhension de liste. Voici un exemple de compréhension d'ensemble :

meilleurs endroits pour lire des mangas en ligne
numbers = {i**(2) for i in range(10) if i%4==0}
print(numbers)
Output: {0, 16, 64}

Cependant, contrairement à la compréhension de liste, la compréhension par ensemble supprime les doublons :

nums = {i for i in range(20) if i%2==1 for k in range(10) if k%2==1}
print(nums)
Output: {1, 3, 5, 7, 9, 11, 13, 15, 17, 19}

Vous pouvez essayer le code ci-dessus en utilisant une compréhension de liste pour voir en quoi ils diffèrent.

Pouvez-vous utiliser la compréhension de liste à chaque fois ?

Nous avons examiné différents exemples de compréhension de liste et où vous pouvez les utiliser. Cependant, comme toute autre méthode Python, le cas d'utilisation d'une compréhension de liste dépend du problème spécifique que vous souhaitez résoudre. Par conséquent, vous ne devez l'utiliser que s'il est idéal pour le problème spécifique que vous souhaitez résoudre.

L'un des objectifs de la compréhension de liste est de simplifier votre code et de le rendre plus lisible. Alors, assurez-vous d'éviter la complexité lorsque vous y faites face. Par exemple, une longue compréhension de Python peut devenir complexe à lire. Cela va à l'encontre de son objectif.

Partager Partager Tweeter E-mail Comment utiliser les compréhensions de liste Python (et quand ne pas les utiliser)

Voici tout ce que vous devez savoir sur l'utilisation de cette fonctionnalité étonnante de Python qui augmentera votre productivité et la lisibilité du code du jour au lendemain.

Lire la suite
Rubriques connexes
  • La programmation
  • Python
A propos de l'auteur Idisou Omisola(94 articles publiés)

Idowu est passionné par tout ce qui concerne les technologies intelligentes et la productivité. Pendant son temps libre, il joue avec le codage et passe à l'échiquier quand il s'ennuie, mais il aime aussi de temps en temps rompre avec la routine. Sa passion pour montrer aux gens le chemin autour de la technologie moderne le motive à écrire plus.

Plus de Idowu Omisola

Abonnez-vous à notre newsletter

Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives !

Cliquez ici pour vous abonner