Est ce qu'il existe un équivalent des compréhensions de liste mais pour d'autre type d'objet ?
Je pense en premier lieu au dictionnaire, tuple et set ?
madem
13 mai 2025
Résolue
3 réponses
Utilisation de conditions dans une compréhension de liste
On peut mettre du `elif` aussi dans une compréhension de liste, ou juste un `if / else` ?
Les compréhensions de liste
Dans cette partie, on va voir ce qu'on appelle les compréhensions de listes, que vous retrouverez également sous le nom de liste en compréhension, ou même list comprehension en anglais.
Les compréhensions de listes nous permettent d'itérer sur une liste et de filtrer les éléments, grâce à des structures conditionnelles, tout ça en une seule ligne.
Actuellement, si on veut filtrer les éléments d'une liste, on doit écrire pas mal de lignes de code.
On retrouve les crochets qui définissent une liste et l'instruction for i in liste, qui nous permet d'itérer sur notre liste d'origine. Et pour finir, on indique ce qu'on veut faire avec i, dans ce cas-ci on fait juste retourner i, tel quel, donc on ne change rien.
En l'état, cette compréhension de liste ne change donc absolument rien à notre liste d'origine. La liste nombres_positifs contiendra tous les éléments de la liste qu'on a définie à la première ligne.
Là où ça devient intéressant, c'est qu'on peut ajouter à la fin de notre compréhension de liste, une structure conditionnelle pour filtrer les éléments.
Dans cet exemple, on indique qu'on veut récupérer uniquement les éléments qui sont supérieurs à 0. On aura donc dans notre liste "nombres_positifs" uniquement les nombres 1, 2, 3, 4 et 5.
On peut également, directement à l'intérieur de notre compréhension de liste, modifier la valeur de i, comme dans l'exemple suivant, pour la multiplier par deux.
On aura donc toujours uniquement les nombres positifs, et cette fois-ci, multipliés par deux, donc 2, 4, 6, 8 et 10 au lieu de 1, 2, 3, 4 et 5. Donc i * 2 pour i in liste si i > 0, tout ça à l'intérieur de deux crochets, et on a notre compréhension de liste.