Le même débutant Python que vous devez comprendre l'utilisation de base des expressions lambda.
L'autre jour, mon aîné m'a posé des questions sur l'utilisation de l'expression lambda, mais je ne l'ai pas beaucoup utilisé et je ne pouvais pas bien répondre, alors j'ai cherché et résumé. À ce moment-là, je me suis référé au site suivant. En fait, cet article est pour organiser mes pensées, donc je pense que c'est plus facile à comprendre si vous lisez l'article lié.
Qiita: Python lambda est facile à comprendre
L'expression lambda est utilisée pour créer une fonction anonyme. Les fonctions immatérielles, comme leur nom l'indique, sont des fonctions sans nom. Créons une fonction qui calcule la somme de deux valeurs avec une fonction ordinaire et une fonction anonyme, et comparons les différences.
Le premier est une fonction normale. Définissez la fonction avec le nom de la fonction comme add.
#Fonction ordinaire
def add(a, b):
return a + b
#Appelez la fonction à partir du nom de la fonction "ajouter".
print(add(1, 2)) #==>3 est la sortie
Ensuite, faisons de même avec une fonction anonyme. J'ai défini une fonction anonyme et attribué cet objet fonction à une variable (add_lambda). ~~ Lors de l'utilisation d'une fonction anonyme, appelez l'objet fonction à partir de la variable. ** Les fonctions anonymes sont affectées aux variables car les fonctions anonymes n'ont pas de nom de fonction à appeler, elles ne peuvent donc pas être utilisées à moins qu'elles ne soient affectées à des variables **. ~~ Cette fois, la fonction anonyme est affectée à la variable et utilisée, mais il est également possible d'utiliser la fonction anonyme sans utiliser la variable. (Merci d'avoir signalé @konandoiruasa.)
#Variable objet de fonction anonyme(add_lambda)Remplacez par.
add_lambda = lambda x, y: x + y
#Appelez un objet fonction à partir d'une variable.
print(add_lambda(1, 2)) #==>3 est la sortie
Comme vous pouvez le voir, ces deux exemples font la même chose. Alors, pourquoi vous embêtez-vous avec lambda? Cela sera discuté ensuite.
** L'essentiel est qu'il peut être plus facile d'écrire. ** **
Maintenant, je voudrais expliquer avec un exemple concret quand cela peut être facilement décrit.
En Python, vous pouvez créer une fonction qui peut recevoir une fonction en tant qu'argument de la fonction. À titre d'exemple, considérons une fonction (return_result) qui affiche le résultat de la fonction reçue.
### disp_fonction du résultat###
#Fonctionne comme argument(func)Arguments utilisés dans et func(*args)Recevoir
# func(args)Afficher le résultat de
def return_result(func, *args):
return func(*args)
Comparons le cas de l'exécution avec une fonction normale et le cas de l'exécution avec une fonction anonyme lorsqu'une fonction qui renvoie la somme de deux est donnée en argument à ce return_result.
Tout d'abord, regardons les fonctions ordinaires.
def add(a, b):
return a + b
print(return_result(add ,1, 2)) #==>3 s'affiche.
Regardons maintenant le cas de l'utilisation d'une fonction anonyme.
print(return_result(lambda x, y: x + y, 1, 2)) #==>3 s'affiche.
La création d'une fonction anonyme avec lambda facilite l'écriture car vous n'avez pas à définir la fonction séparément.
De cette façon, lors de l'utilisation d'une fonction anonyme dans une fonction (return_result) qui prend une fonction (func) et un argument (* args) comme arguments, la description peut être simplifiée autant que la définition de la fonction n'est pas requise. Cependant, si vous souhaitez utiliser une fonction complexe comme func, vous devez définir la fonction séparément au lieu de lambda.
L'utilisation de lambda est la suivante.
#argument lambda a,Argument b:Traitement à l'aide des arguments a et b
func_lambda = lambda a, b: a + b
Plus de détails sont les suivants. ** Ceci est une réimpression d'une partie de la documentation Python découpée avec une capture d'écran. .. ** **
Je vois des articles qui sont souvent utilisés dans les fonctions de carte et de filtre.
lambda n'a pas beaucoup de mérite à utiliser dans des fonctions compliquées ou des fonctions normales, mais c'est pratique car il est facile à décrire pour les fonctions qui reçoivent des fonctions telles que des fonctions d'ordre supérieur comme arguments. .. .. Telle est ma propre conclusion.
sum_result = (lambda x, y: x+y)(1, 2) # sum_3 est attribué au résultat.
La raison pour laquelle vous pouvez écrire comme ceci est, selon le document lambda,
L'expression paramètres lambda: l'expression devient un objet fonction.
Il y a. Oui, l'expression lambda est un objet fonction !! Donc la partie (lambda x, y: x + y)
est l'objet fonction.
Par conséquent, il peut être utilisé comme une fonction sous la forme d'un objet fonction (argument réel) Avec cette méthode, vous pouvez utiliser des fonctions anonymes une fois sans utiliser de variables !! Je ne savais pas.
Documentation Python Qiita: Python lambda est facile à comprendre
Recommended Posts