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
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
- 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.