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)