comprehension

Python

En anglais : list comprehension.

En français : construction par intension (par opposition à extension)

Cela marche pour les listes

On peut créer un liste en listant tous les éléments, mais une autre façon est de donner la règle qui définit les éléments :

Exemples :

  • l1 = [i **2 for i in range (1,100)] # les puissances de i pour i allant de 1 à 100, non inclus
  • l2 = [sqrt(x) for x in srange(0, 10, .1)] # La racine carrée de x pour x allant de 0 à 10 non inclus, par pas de 0.1, à savoir 0.0, 0.1, 0.2, 0.3, ....
  • [i for i in rang (1,n) if predicat(i)] # on ne garde que les i qui satisfont au prédicat
  • [x + y for x in l1 for y in l2] # on somme tous les couples de x et de y, x appartenant à l1 et y à l2

Cela marche pour les ensembles

>>> a = {x for x in 'abracadabra' if x not in 'abc'}

>>> a

set(['r', 'd'])

Cela ne marche pas pour les tuples


Et puis, il y a l'utilisation des itérateurs en liaison avec les générateurs. La construction paresseuse.



» Glossaire du langage python