Et cela conduit à une syntaxe simplifiée comme indiqué:
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,
Et le code Python pour cela est illustré ci-dessous: author_list = [() for author in authors] print(author_list) ['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 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 b_arr) afin de calculer l'aire. Et vous pouvez le faire en utilisant Python zip() la fonction.
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.
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**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.
On peut également créer des listes par une commande du type [valeur boucle]. On parle alors de listes définies par compréhension. Exemple 3 Langage Python Interprétation L1 liste = [i**2 for i in range(5)] L2 liste L3 [0, 1, 4, 9, 16] L1: La commande [i**2 for i in range(5)] demande de créer une liste contenant les 5 premiers carrés. L2 et L3: La liste demandée s'affiche. Si l'on veut les carrés des entiers de 1 à 4: L1 liste = [i**2 for i in range(1, 5)] Par rapport à l'exemple précédent, on a précisé à l'intérieur des parenthèses que le rang démarrait à 1. L3 [1, 4, 9, 16] Il est possible d'ajouter un test après la boucle pour filtrer les valeurs désirées. Exemple 4 On veut créer une liste de tous les nombres pairs compris entre 0 et 100. L1 liste = [i for i in range(101) if i%2==0] Le test if i%2==0 détermine si le reste de la division euclidienne de i par 2 est égal à 0, c'est-à-dire si le nombre i est pair. L3 [0, 2, 4, 6, 8, 10, 12, 14, 16, 18, 20, 22, 24, 26, 28, 30, 32, 34, 36, 38, 40, 42, 44, 46, 48, 50, 52, 54, 56, 58, 60, 62, 64, 66, 68, 70, 72, 74, 76, 78, 80, 82, 84, 86, 88, 90, 92, 94, 96, 98, 100] Pour obtenir la liste des nombres impairs entre 0 et 100: in range(101) if i%2==1] L3 [1, 3, 5, 7, 9, 11, 13, 15, 17, 19, 21, 23, 25, 27, 29, 31, 33, 35, 37, 39, 41, 43, 45, 47, 49, 51, 53, 55, 57, 59, 61, 63, 65, 67, 69, 71, 73, 75, 77, 79, 81, 83, 85, 87, 89, 91, 93, 95, 97, 99]
transpose = [] for i in range(4): temp = [] for row in matrix: (row[i]) (temp) print(transpose) # [[1, 5, 9], [2, 6, 10], [3, 7, 11], [4, 8, 12]] La boucle périphérique parcoure la matrice quatre fois puisqu'il y a quatre colonnes à l'intérieur. La boucle interne arpente les éléments de l'état en cours de row, une ligne après l'autre et les ajoute temporairement à la liste déclarée temp. La liste temp est alors complétée comme une ligne pour la matrice transposée. Dans le cadre de listes en compréhension, la boucle du plus haut niveau parvient à la fin et celle qui plus basse revient vers le début. Voici donc le code sous forme d'une liste en compréhension: transpose = [[row[n] for row in matrix] for n in range(4)] Il s'agit d'une forme originale, prenant en compte la structure de ces listes, en substituant la classique boucle for que vous avez appris au début de cet article. Si vous la comparez avec la liste en compréhension imbriquée ci-dessus, vous noterez queici est en fait une autre liste en compréhension: [row[n] for row in matrix].