Retour au cours

Compréhensions de liste 2 : Ajouter une logique conditionnelle (`if`)

Programmation Python : Le Bootcamp de Zéro à Héros

Compréhensions de liste conditionnelles

Vous pouvez inclure une logique conditionnelle (instructions if) au sein d'une compréhension de liste pour filtrer les éléments de l'itérable avant qu'ils ne soient ajoutés à la nouvelle liste.

Syntaxe

[expression for item in iterable if condition]

Exemple 1 : Filtrer les nombres pairs

Nous voulons inclure uniquement les nombres divisibles par 2.

python numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

even_numbers = [n for n in numbers if n % 2 == 0] print(even_numbers) # [2, 4, 6, 8, 10]

Exemple 2 : Filtrer les chaînes par longueur

python words = ['pomme', 'chat', 'banane', 'chien', 'éléphant']

short_words = [w for w in words if len(w) <= 5] print(short_words) # ['pomme', 'chat', 'chien']

Note sur if...else dans les compréhensions :

Si vous avez besoin d'une clause else (c'est-à-dire transformer l'élément d'une manière si la condition est vraie, et d'une autre si elle est fausse), la partie if/else se déplace avant la boucle for.

Syntaxe : [valeur_si_vrai if condition else valeur_si_faux for item in iterable]

python signals = [-1, 0, 5, -3, 10] statuses = ['Positif' if x > 0 else 'Non-positif' for x in signals] print(statuses)

['Non-positif', 'Non-positif', 'Positif', 'Non-positif', 'Positif']