Principe général⚓︎
Les listes en compréhension n'existent pas dans tous les langages mais seulement dans certains (Python, Haskell, etc.).
Liste sans condition⚓︎
Supposons que je veuille créer la liste des carrés des entiers de 1 à 100, je peux taper :
maliste = []
for i in range(1, 101):
maliste.append(i**2)
alors maliste
contiendra bien ce qu'il faut.
Voici une autre façon de faire, plus "ramassée" :
maliste = [i**2 for i in range(1, 101)]
que je lis ainsi : maliste
est constituée des carrés de i
, pour i
allant de 1 à 100.
Lien avec les notations mathématiques
En mathématiques, il est fréquent de définir de la même façon des ensembles, par exemple :
\(E=\{x^2 ; x\in ⟦1, 100⟧ \}\)
est l'ensemble des carrés des entiers de 1 à 100.
Ensemble ≠ Liste
Notez qu'un ensemble mathématique n'est pas ordonné, contrairement à une liste. Il existe en Python un type pour les ensembles, à savoir set
.
Liste avec condition⚓︎
Je peux également ajouter des conditions, par exemple, si je veux avoir seulement les carrés qui sont inférieurs à 50 :
maliste = [i**2 for i in range(1, 101) if i**2 < 50]