L'utilisation en temps opportun de la compréhension de liste en Python peut faciliter les opérations de liste itératives. En plus d'être une seule ligne, elle est plus lisible et s'exécute plus efficacement.
Cependant, vous pourriez vous énerver si vous ne savez pas comment vous en servir. 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 des exemples réels.
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îne. C'est à ce moment que l'utilisation de la compréhension de liste peut être utile.
Un avantage de l'utilisation de la compréhension de liste est que vous pouvez effectuer plusieurs opérations dans une seule liste.
En revanche, il crée de nouveaux éléments et les ajoute à une liste vide qu'il déclare automatiquement. Donc, au lieu de créer manuellement une liste vide et d'y ajouter 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 apparaît.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 en 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 séparées. Vous pourrez donc vous y référer plus tard.
Par exemple, vous pourriez être grattage d'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 ensuite de mettre les données récupéré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 récupérées dans des variables dédiées. Vous pouvez ensuite convertir ces variables en un DataFrame Python ultérieurement.
Regardez l'exemple ci-dessous:
Produits = [i.text for i dans 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 les placer dans des colonnes séparées dans un DataFrame en utilisant les Pandas de Python.
Comment créer et utiliser une compréhension de liste en Python
Le 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 pour les éléments de la liste]
Impression CompréhensionVariable renvoie le résultat du code ci-dessus sous forme de liste.
Cependant, veillez à ne pas confondre une compréhension de liste avec une pour boucle.
Par exemple, nous allons utiliser une boucle ouverte pour pour obtenir une liste de tous les multiples de trois entre 1 et 30:
maListe = []
pour i dans la plage (1, 11):
myList.append (i * 3)
imprimer (maListe)
Sortie: [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 pour i dans la plage (1, 11)]
impression (multiplesOf3)
Sortie = [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 entre 1 et 10:
oddNumbers = [i pour i dans la plage (1, 11) sinon i% 2 == 2]
imprimer (numéros impairs)
Sortie = [1, 3, 5, 7, 9]
Maintenant, réécrivons également le code ci-dessus en utilisant un open pour boucle:
maListe = []
pour i dans la plage (1, 11):
sinon i% 2 == 0:
myList.append (i)
imprimer (maListe)
Sortie: [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 pour i dans la plage (1, 11) sinon i% 2 == 0 si i <4]
imprimer (numéros impairs)
Sortie: [1, 3]
Il faut également un imbriqué pour boucle:
someNums = [[i * 2 pour i dans la plage (1, 3)] pour _ dans la plage (4)]
print (someNums)
Vous pouvez également avoir un simple imbriqué pour boucle dans une liste de compréhension:
someNums = [i * 2 pour i dans la plage (1, 3) pour k dans la plage (4)]
Vous pouvez également manipuler des chaînes avec la compréhension de liste Python. Jetons un coup d'œil à une contre-compréhension de mots ci-dessous:
word = ["Ceci est un tutoriel de compréhension de liste python"]
wordCounter = [i.count ('') + 1 pour i dans le mot]
imprimer (wordCounter)
Sortie: 7
Une compréhension de liste peut également accepter une fonction qui effectue une opération spécifique. Insérons une fonction multiplicatrice qui obtient des nombres pairs dans une compréhension de liste pour voir comment cela fonctionne:
Nombres = [4, 7, 8, 15, 17, 10]
multiplicateur def (n):
multiple = n * 2
retourner plusieurs
multipleEven = [multiplicateur (i) pour i en nombres si i% 2 == 0]
impression (multipleEven)
Sortie: [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 séparées.
Par exemple, vous pouvez effectuer une autre opération sur n et avoir une variable dédiée pour cela. Modifions la compréhension ci-dessus pour générer des nombres pairs à partir de nombres impairs:
multipleEvenFromOdds = [multiplicateur (i) pour i en nombres sinon i% 2 == 0]
impression (multipleEvenFromOdds)
Sortie: [14, 30, 34]
Compréhensions des dictionnaires et des 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 du dictionnaire ci-dessous pour voir comment cela fonctionne:
correspondant = {i: i * 2 pour i dans la plage (10) sinon i% 2 == 0}
imprimer (corr)
Sortie: {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: Fonctionnement des tableaux et des 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:
nombres = {i ** (2) pour i dans la plage (10) si i% 4 == 0}
imprimer (nombres)
Sortie: {0, 16, 64}
Cependant, contrairement à la compréhension de liste, la compréhension d'ensemble supprime les doublons:
nums = {i pour i dans la plage (20) si i% 2 == 1 pour k dans la plage (10) si k% 2 == 1}
imprimer (nums)
Sortie: {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 jeté un œil à 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 traitez avec. Par exemple, une longue compréhension de Python peut devenir complexe à lire. Cela va à l'encontre de son objectif.
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.
- Programmation
- Python
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 rompre avec la routine de temps en temps. Sa passion pour montrer aux gens le chemin de la technologie moderne le motive à écrire davantage.
Abonnez-vous à notre newsletter
Rejoignez notre newsletter pour des conseils techniques, des critiques, des ebooks gratuits et des offres exclusives!
Un pas de plus…!
Veuillez confirmer votre adresse e-mail dans l'e-mail que nous venons de vous envoyer.