Votre navigateur n'est pas à jour !

Merci de mettre à jour votre navigateur pour utiliser mon blog. Mettre à jour mon navigateur maintenant

×

Python - Les fonctions Lambda

Date de publication 17 sept. 2016
Une fonction lambda est plus connue sous le nom de fonction anonyme.
Une fonction lambda ne contient pas de return puisqu'elle retournera toujours le résultat.
Elle doit tenir sur une ligne et ne contenir qu'une seule instruction :
>>> def f(x):
...   return x*2 
... 
>>> f(3) 6 
>>> g = lambda x: x*2 
>>> g(3) 6

Pour construire une fonction lambda on retrouve :
  • le mot clé lambda
  • le paramètre passé en argument x (il peut en exister plusieurs, même des optionnels)
  • l’opération de calcul x*2
Elle peut être utilisée avec filter(), map() ou reduce() notamment
>>> myList = [1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> print filter(lambda x: x % 2 == 0, myList )
[2, 4, 6, 8]
>>> 
>>> print map(lambda x: x %2 == 0, myList )
[False, True, False, True, False, True, False, True, False]
>>> print reduce(lambda x, y: x + y, myList )
45
L'utilisation des 2 premiers n'est plus recommandée selon PEP 279

Je vous encourage à envisager la compréhension de liste, approche plutôt pythonique.
#[fonction(x) for x in liste]
>>> print [x for x in myList if x>5] #filter
[6, 7, 8, 9]
>>> print [2*x for x in myList ] #map
[2, 4, 6, 8, 10, 12, 14, 16, 18]
Une compréhension de liste est une itération sur une collection pour en appliquer une opération de calcul.

Ces exemples font partis de la programmation fonctionnelle (parti de la programmation déclarative qui est l'opposé de la programmation impérative que l'on fait pour la plupart : modifier l'état du programme par instruction successive), pour faire simple on passe une fonction à une autre fonction !
La programmation déclarative ne comporte aucun état, quelque soit le contexte le résultat sera toujours le même.

Vous avez vu une fonction lambda c'est tout simple !
blog comments powered by Disqus