Fonctions lambda

En Python, une fonction lambda est une fonction anonyme (à laquelle on n’a pas donné de nom), et qu’on peut appliquer “à la volée” dans une expression.

La syntaxe est : lambda paramètres : expression (remarque : lambda est un des mots réservés du langage).

Les fonctions lambda sont réservées à des situations relativement simples. Leur définition doit tenir sur une seule ligne, et elles ne peuvent pas contenir d’instructions composées (pas d’affectation, pas de boucle, etc.). Elles consistent donc essentiellement en la définition d’une expression calculée en fonction des paramètres qui lui sont passés.

Pour prendre un exemple simpliste (et pas très utile), les deux définitions suivantes de la fonction f sont équivalentes :

On peut utiliser des fonctions anonymes dans des constructions avec map (où il s’agit d’appliquer une même fonction à tous les éléments d’une liste, par exemple) ou filter (où il s’agit cette fois de sélectionner des éléments répondant à un certain critère). Mais il est toujours possible de contourner l’utilisation des fonctions lambda en utilisant des “listes par compréhension” (cette notion sera abordée plus loin).

Voici par exemple deux façons de calculer la liste des carrés des dix premiers entiers positifs.

La deuxième méthode est plus élégante (et surtout plus naturelle) :

Autre exemple, on forme la liste de tous les entiers de [1, 20[ qui ne sont pas divisibles par 3.

Là encore, la deuxième méthode est préférable :

Les fonctions lambda conduisent souvent à un style un peu difficile à lire, et on vient de voir qu’on peut s’en passer.

On verra cependant un exemple un peu plus convaincant dans la section suivante.

Retour à l’accueil du cours Python/Numpy

Sommaire du chapitre 4

  1. La valeur None, et l’instruction return
  2. L’espace de noms global
  3. L’espace de noms local d’une fonction
  4. Remarques sur les espaces de noms emboîtés
  5. Paramètres positionnels ou nommés, valeurs par défaut
  6. Rattrapage des exceptions
  7. Fonctions lambda
  8. Documentation des fonctions