Vous pouvez écrire vos propres fonctions Python à l’aide du mot-clé def, d’un en-tête, d’une docstring et d’un corps de fonction. Toutefois, il existe une manière plus rapide de définir des fonctions à la volée : ce sont les fonctions lambda, créées avec le mot-clé lambda.
Certaines définitions de fonctions sont suffisamment simples pour être converties en fonction lambda. En procédant ainsi, vous écrivez moins de lignes de code, ce qui est très pratique, notamment lorsque vous développez et maintenez de gros programmes.
Fonction lambda
Ici, nous réécrivons notre fonction raise_to_power sous forme de fonction lambda. Après le mot-clé lambda, on indique les noms des arguments, puis on ajoute un deux-points suivi de l’expression qui décrit la valeur de retour souhaitée.
raise_to_power =lambda x, y: x ** y
raise_to_power(2,3)Propulsé par
Comme mentionné, les fonctions lambda permettent d’écrire rapidement des fonctions de façon « léger et rapide ». Nous ne vous conseillons pas de les utiliser systématiquement, mais elles sont très utiles dans certaines situations, comme dans l’exemple ci-dessous.
map() et fonction lambda
La fonction map prend deux arguments : une fonction et une séquence (par exemple une liste), puis applique la fonction à tous les éléments de la séquence. Nous pouvons passer une fonction lambda à map sans même la nommer ; on parle alors de fonctions anonymes.
Dans cet exemple, nous utilisons map() avec une fonction lambda qui met au carré tous les éléments de la liste, et nous stockons le résultat dans square_all.
nums =[48,6,9,21,1]
square_all =map(lambda num: num **2, nums)print(square_all)Propulsé par
Exemple interactif d’écriture d’une fonction lambda
La fonction echo_word ci-dessous prend 2 paramètres : une chaîne de caractères, word1, et un entier echo. Elle renvoie une chaîne correspondant à la concaténation de echo copies de word1.
Vous allez convertir cette fonction simple en fonction lambda.
defecho_word(word1, echo):"""Concatenate echo copies of word1."""
words = word1 * echo
return words
Propulsé par
Dans l’exemple suivant, vous allez :
Définir une fonction lambda echo_word en utilisant les variables word1 et echo. Reproduisez le comportement de la définition originale de echo_word() ci-dessus.
Appeler echo_word() avec l’argument chaîne 'hey' puis la valeur 5, dans cet ordre. Affectez l’appel à result. Enfin, affichez la variable result.
# Define echo_word as a lambda function: echo_word
echo_word =(lambda word1, echo: word1 * echo)# Call echo_word: result
result = echo_word('hey',5)# Print resultprint(result)Propulsé par
Lorsque nous exécutons le code ci-dessus, il produit le résultat suivant :
Découvrez les fonctions lambda Python, leur utilité et quand les utiliser. Comprend des exemples pratiques et des bonnes pratiques pour une mise en œuvre efficace.
Découvrez les fonctions et méthodes des listes Python. Veuillez suivre les exemples de code pour list() et d'autres fonctions et méthodes Python dès maintenant.
Vous pouvez écrire vos propres fonctions Python à l’aide du mot-clé def, d’un en-tête, d’une docstring et d’un corps de fonction. Toutefois, il existe une manière plus rapide de définir des fonctions à la volée : ce sont les fonctions
lambda, créées avec le mot-clélambda.Certaines définitions de fonctions sont suffisamment simples pour être converties en fonction lambda. En procédant ainsi, vous écrivez moins de lignes de code, ce qui est très pratique, notamment lorsque vous développez et maintenez de gros programmes.
Fonction
lambdaIci, nous réécrivons notre fonction
raise_to_powersous forme de fonction lambda. Après le mot-clélambda, on indique les noms des arguments, puis on ajoute un deux-points suivi de l’expression qui décrit la valeur de retour souhaitée.Comme mentionné, les fonctions
lambdapermettent d’écrire rapidement des fonctions de façon « léger et rapide ». Nous ne vous conseillons pas de les utiliser systématiquement, mais elles sont très utiles dans certaines situations, comme dans l’exemple ci-dessous.map()et fonctionlambdaLa fonction
mapprend deux arguments : une fonction et une séquence (par exemple une liste), puis applique la fonction à tous les éléments de la séquence. Nous pouvons passer une fonctionlambdaàmapsans même la nommer ; on parle alors de fonctions anonymes.Dans cet exemple, nous utilisons
map()avec une fonctionlambdaqui met au carré tous les éléments de la liste, et nous stockons le résultat danssquare_all.L’affichage de
square_allmontre qu’il s’agit d’un objetmap. Pour voir le résultat, on le convertit en liste aveclistpuis on l’affiche.Exemple interactif d’écriture d’une fonction
lambdaLa fonction
echo_wordci-dessous prend 2 paramètres : une chaîne de caractères,word1, et un entierecho. Elle renvoie une chaîne correspondant à la concaténation deechocopies deword1.Vous allez convertir cette fonction simple en fonction lambda.
Dans l’exemple suivant, vous allez :
echo_worden utilisant les variablesword1etecho. Reproduisez le comportement de la définition originale deecho_word()ci-dessus.echo_word()avec l’argument chaîne'hey'puis la valeur5, dans cet ordre. Affectez l’appel àresult. Enfin, affichez la variableresult.Lorsque nous exécutons le code ci-dessus, il produit le résultat suivant :
Essayez par vous-même.
Pour en savoir plus sur les fonctions lambda, regardez cette vidéo issue de notre cours Python Data Science Toolbox (Part 1).
Ce contenu est extrait du cours Python Data Science Toolbox (Part 1) de DataCamp, par Hugo Bowne-Anderson.
Découvrez aussi le tutoriel sur les fonctions Python de DataCamp.