Python et fonctions Lambda : principe et intérêts

-
3
 m de lecture
-

Pour de petites opérations, les fonctions régulières sur Python peuvent prendre beaucoup de place, rendant alors la syntaxe peu lisible. D’où l’intérêt des fonctions Lambda en Python.

Comment les utiliser et pourquoi ? Découvrez les réponses dans cet article. 

Les fonctions Lambda en Python, des fonctions anonymes

Sur Python, une fonction Lambda est une fonction anonyme. C’est-à-dire une fonction déclarée sans nom. Sa syntaxe se présente comme suit :
Lambda arguments: expression

Comme il s’agit d’une syntaxe à une seule ligne, la fonction est beaucoup plus lisible. Il n’y a pas besoin de rechercher l’argument sur une autre ligne. Même si la syntaxe est différente des fonctions régulières déclarées avec le mot-clé def, elles se comportent de la même manière. Elle est juste plus concise. 

Outre son absence de nom et sa concision, les fonctions Lambda en python se caractérisent par le fait qu’elles ne contiennent qu’une seule expression. En revanche, elles peuvent avoir plusieurs arguments.

4 exemples de fonctions Lambda

Pour vous aider à mieux comprendre la différence entre les fonctions Lambda de Python et les fonctions régulières, voici quelques exemples :

Fonction Lambda et sum

Si vous souhaitez calculer la somme de deux valeurs, votre code peut être l’une de ces deux formules.

Fonction régulière sur Python Fonction Lambda sur Python
1 def sum_classic( a , b ):
2 return a + b
sum_Lambda = Lambda a,b : a+b

Fonction Lambda et map

Avec la fonction map, vous pouvez doubler chaque élément d’une liste. 

Voici les différences entre la fonction Lambda et la fonction régulière. 

Fonction régulière sur Python Fonction Lambda sur Python
1 def doubler(x):
2 return x * 2
3 liste = [1, 2, 3, 4, 5]
4 resultats_def = list(map(doubler, liste))
5 print(resultats_def)
1 liste = [1, 2, 3, 4, 5]
2 resultats_Lambda = list(map(Lambda x: x * 2, liste))
3 print(resultats_Lambda)

Cela affichera [2, 4, 6, 8, 10].

Fonction Lambda et filter

Avec la fonction map, vous pouvez filtrer certains éléments. Dans cet exemple, il s’agit de filtrer les nombres pairs d’une liste. 

Voici les différences entre la fonction Lambda et la fonction régulière.

Fonction régulière sur Python Fonction Lambda sur Python
1 def est_pair(x):
2 return x % 2 == 0
3 liste = [1, 2, 3, 4, 5, 6, 7, 8, 9]
4 resultats_def = list(filter(est_pair, liste))
5 print(resultats_def)
1 liste = [1, 2, 3, 4, 5, 6, 7, 8, 9]
2 resultats_Lambda = list(filter(Lambda x: x % 2 == 0, liste))
3 print(resultats_Lambda)

Dans les deux cas, cela affichera [2, 4, 6, 8].

Fonction Lambda et sorted

Avec la fonction map, vous pouvez trier une liste. Dans cet exemple, il s’agit de trier une liste de tuples en fonction du deuxième élément. 

Voici le code à taper pour les deux types de fonction :

Fonction régulière sur Python Fonction Lambda sur Python
1 def clee_tri(tuple):
2 return tuple[1]
3 tuples = [(1, 5), (3, 2), (8, 10), (4, 7)]
4 resultats_def = sorted(tuples, key=clee_tri)
5 print(resultats_def)
1 tuples = [(1, 5), (3, 2), (8, 10), (4, 7)]
2 resultats_Lambda = sorted(tuples, key=Lambda x: x[1])
3 print(resultats_Lambda)

Cela affichera [(3, 2), (1, 5), (4, 7), (8, 10)].

Outre ces exemples, les fonctions Lambda sur Python s’utilisent surtout avec des fonctions simples pour une opération ponctuelle, comme les fonctions apply(), sorted(), applymap() ou reduce().

Cas d’utilisation des fonctions Lambda sur Python

La fonction Lambda en Python peut être utilisée dans les situations suivantes : 
  • Les petites opérations : la valeur de retour est calculée en évaluant une expression présente sur une seule ligne de code. Dans ce cas, la définition d’une fonction complète avec def peut sembler trop lourde. 
  • Les opérations ponctuelles : cela signifie qu’il n’est pas nécessaire de nommer la fonction puisqu’elle n’est utilisée qu’une seule fois. Si vous devez la répéter ou y faire référence ailleurs dans le même module, il sera préférable d’utiliser les fonctions normales. 
  • Les fonctions intégrées : telles que les fonctions map(), filter(), apply(), sorted(), sum() et reduce() que nous avons mentionnées plus haut.

Concrètement, les fonctions Lambda sont utiles pour trier les structures de données Python, comme les listes et les dictionnaires. Cela dit, le choix entre les fonctions Lambda et régulière est surtout une question de style et de lisibilité, car au final, le résultat est le même. 

Bon à savoir : les fonctions Lambda existent sur de nombreux langages de programmation (Java, C#, C++). Mais avec Python, elles n’ajoutent aucune fonctionnalité supplémentaire. Ce qui n’est pas forcément le cas des autres langages informatiques.

Utilisez les fonctions Lambda avec DataScientest

Que vous utilisiez les fonctions normales ou Lambda avec Python, il est nécessaire de bien se former pour maîtriser ce langage de programmation. C’est justement possible avec DataScientest. Au sein de notre programme, vous apprendrez à coder tous types d’opérations, qu’elles soient simples ou complexes.

Facebook
Twitter
LinkedIn

DataScientest News

Inscrivez-vous à notre Newsletter pour recevoir nos guides, tutoriels, et les dernières actualités data directement dans votre boîte mail.

Vous souhaitez être alerté des nouveaux contenus en data science et intelligence artificielle ?

Laissez-nous votre e-mail, pour que nous puissions vous envoyer vos nouveaux articles au moment de leur publication !

Newsletter icone
icon newsletter

DataNews

Vous souhaitez recevoir notre
newsletter Data hebdomadaire ?