Le mot-clé lambda en Python

Article publié le et mis à jour le .

La fonction lambda en Python

C’est quoi lambda en Python ? Comment l’utiliser ? Découvrez les secrets du mot-clé lambda en Python qui permet de créer des fonction anonymes !

L’expression lambda est utilisée pour créer des fonctions anonymes en Python. Ces fonctions peuvent prendre un nombre indéfini d’arguments mais ne peuvent contenir qu’une seule expression. Cette expression unique qui compose une fonction lambda sera retournée.

Syntaxe d’une fonction lambda :

lambda paramètres: expression

Explications vidéo de lambda en moins d’une minute :

Par exemple, cette fonction lambda retourne le carré d’un nombre :

lambda nombre: nombre * nombre

Comment declarer une fonction lambda ?

Une fonction lambda est définie avec le mot-clé lambda, suivi des paramètres et de l’expression à évaluer.

lambda parametres: expression

Comment utiliser la fonction lambda en Python ?

Il existe plusieurs manières d’utiliser une fonction lambda en Python. Le plus souvent, on pourra la passer en paramètre à une autre fonction. Mais il est aussi possible d’invoquer une fonction lambda en la sauvant dans une autre variable ou bien en l’utilisant directement.

En la sauvant dans une variable

On peut sauver une fonction lambda en l’affectant à une variable. On pourra ensuite l’appeler quand on veut, comme une fonction normale.

mettre_au_carre = lambda nombre: nombre * nombre

print(mettre_au_carre(4))

Affichera :

16

En l’appelant directement

On peut appeler directement une fonction lambda en la mettant entre parenthèses et en lui passant les paramètres qu’elle attend, eux aussi entre parenthèses.

Reprenons notre exemple pour mettre au carré :

print((lambda nombre: nombre * nombre)(2))

Affichera :

4

Quand utiliser la fonction lambda ?

On utilise un lambda pour créer une fonction temporaire quand une fonction complète n’est pas nécessaire. Les fonctions lambda sont généralement utilisées pour des opérations simples. Si votre fonction devient complexe, il vaut mieux utiliser une fonction définie avec def.

Exemples de cas d’utilisation de lambda en Python

1. Avec la fonction map :

Utilisation de map() pour appliquer une fonction à chaque élément d’une liste.

nombres = [1, 2, 3, 4]

nombres_doubles = list(map(lambda x: x * 2, nombres))

print(nombres_doubles)

Ce qui affichera :

[2, 4, 6, 8]

En apprendre plus sur la fonction map

2. Avec la fonction filter

Utilisation de filter() pour filtrer les éléments d’une liste en fonction d’une condition.

nombres = [1, 2, 3, 4, 5, 6]

nombres_pairs = list(filter(lambda x: x % 2 == 0, nombres))

print(nombres_pairs)

Ce qui affichera :

[2, 4, 6]

En apprendre plus sur la fonction filter

3. Tri personnalisé avec sorted

Utilisation de sorted() avec une fonction lambda pour trier une liste en fonction d’un critère spécifique.

etudiants = [('Alice', 25), ('Bob', 20), ('Charlie', 22)]

etudiants_par_age = sorted(etudiants, key=lambda x: x[1])

print(etudiants_par_age)

Ce qui affichera :

[('Bob', 20), ('Charlie', 22), ('Alice', 25)]

4. Calculer la somme avec reduce

Utilisation de functools.reduce() pour calculer la somme des éléments d’une liste.

from functools import reduce

nombres = [1, 2, 3, 4]

somme = reduce(lambda x, y: x + y, nombres)

print(somme)

Ce qui affichera :

10

5. Créer des fonctions rapidement

Utilisation de fonctions lambda lors de la définition de fonctions rapidement dans une expression.

On peut par exemple définir une fonction lambda directement dans une expression

additionner = (lambda x, y: x + y)(3, 5)

print(additionner)

Ce qui affichera :

8