FRFAM.COM >> Famille >> Technologie &Innovation >> Informatique

Guide complet pour débutants : Maîtriser les fonctions lambda en Python

Les fonctions lambda en Python sont des outils puissants, compacts et essentiels pour tout développeur. Souvent méconnues, elles sont pourtant simples à utiliser une fois comprises correctement.

Dans ce guide détaillé, découvrez tout ce qu'il faut savoir sur les lambdas : leur définition, leur syntaxe, leurs applications pratiques et leurs limites. Basé sur les meilleures pratiques Python, ce tutoriel est idéal pour les débutants.

Avant de commencer, configurez un environnement virtuel Python ou testez les exemples dans un REPL en ligne comme Replit ou PythonAnywhere.

Qu'est-ce qu'une fonction lambda en Python ?

Une fonction lambda est une fonction anonyme, définie en une seule ligne sans nom. Contrairement aux fonctions def traditionnelles, elle est parfaite pour des opérations courtes et ponctuelles.

Les lambdas retournent un objet fonction assignable à une variable. Elles acceptent plusieurs arguments mais une seule expression (pas de bloc de code multiple ni d'appels à d'autres fonctions complexes).

Elles brillent avec map(), filter() et reduce() pour des traitements de listes concis.

Comment utiliser les fonctions lambda en Python

Exemple de fonction classique :

def add_five(nombre):
    return nombre + 5

print(add_five(nombre=4))  # Résultat : 9
Guide complet pour débutants : Maîtriser les fonctions lambda en Python

Version lambda équivalente :

add_five = lambda nombre: nombre + 5

print(add_five(nombre=4))  # Résultat : 9
Guide complet pour débutants : Maîtriser les fonctions lambda en Python

Syntaxe : lambda arguments: expression. Pas de return explicite.

Avec deux arguments :

add_numbers_and_five = lambda num1, num2: num1 + num2 + 5

print(add_numbers_and_five(num1=4, num2=3))  # Résultat : 12
Guide complet pour débutants : Maîtriser les fonctions lambda en Python

Fonctions lambda avec map, filter et reduce

Les fonctions map(), filter() et reduce() (du module functools) s'associent idéalement aux lambdas pour traiter les listes efficacement.

map() applique une fonction à chaque élément :

liste1 = [2, 4, 6, 8]
print(liste1)

nouvelle_liste = list(map(lambda x: x + 5, liste1))
print(nouvelle_liste)  # [7, 9, 11, 13]
Guide complet pour débutants : Maîtriser les fonctions lambda en Python

filter() sélectionne les éléments vérifiant une condition :

nombres = [1, 4, 5, 10, 20, 30]
print(nombres)

nouveaux_nombres = list(filter(lambda x: x > 10, nombres))
print(nouveaux_nombres)  # [20, 30]
Guide complet pour débutants : Maîtriser les fonctions lambda en Python

reduce() accumule un calcul sur la liste :

from functools import reduce

nombres = [10, 20, 30, 40]
print(nombres)

resultat = reduce(lambda a, b: a + b, nombres)
print(resultat)  # 100
Guide complet pour débutants : Maîtriser les fonctions lambda en Python

Précautions avec les fonctions lambda Python

Les lambdas excellent pour les tâches simples. Pour du code complexe (multi-expressions, appels imbriqués), préférez def.

Refactorez si votre lambda grossit : clarté avant tout. Consultez notre guide sur la programmation orientée objet en Python et notre FAQ pour débutants.


[]