[Introduction à Python] Utilisation de base des expressions lambda

Objet de l'article

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

Qu'est-ce qu'une expression lambda?

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.

Pourquoi vous avez besoin d'une fonction lambda

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

Comment utiliser l'expression 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. .. ** ** スクリーンショット 2020-01-06 13.49.51.png

Situations susceptibles d'être fréquemment utilisées

Je vois des articles qui sont souvent utilisés dans les fonctions de carte et de filtre.

Résumé

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.

Supplément (ajouté comme indiqué): Comment utiliser une fonction anonyme sans utiliser la variable

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.

Référence

Documentation Python Qiita: Python lambda est facile à comprendre

Recommended Posts

[Introduction à Python] Utilisation de base des expressions lambda
[Introduction à Python] Utilisation basique de la bibliothèque matplotlib
Utilisation basique de la f-string Python
[Présentation de l'application Udemy Python3 +] 58. Lambda
[Introduction à Python] Utilisation basique de la bibliothèque scipy que vous devez absolument connaître
Introduction de Python
[Route vers Python intermédiaire] Utiliser des expressions lambda
[Introduction au Data Scientist] Bases de Python ♬
Grammaire de base du système Python3 (comment utiliser les fonctions, la fermeture, la fonction lambda)
[Introduction à Udemy Python3 + Application] 26. Copie du dictionnaire
[Introduction à Udemy Python3 + Application] 19. Copie de la liste
Utilisation basique de flask-classy
Utilisation des locaux Python ()
Introduction au langage Python
Utilisation de base de SQL Alchemy
Introduction à OpenCV (python) - (2)
Cours de base Python (Introduction)
Connaissance de base de Python
Résumé de l'étude de Python pour utiliser AWS Lambda
[Chapitre 5] Introduction à Python avec 100 coups de traitement du langage
[Introduction à Udemy Python3 + Application] 53. Dictionnaire des arguments de mots-clés
[Chapitre 2] Introduction à Python avec 100 coups de traitement du langage
[Introduction à Udemy Python3 + Application] 52. Tapple d'arguments positionnels
[Chapitre 4] Introduction à Python avec 100 coups de traitement du langage
[Python] Utilisation correcte de la carte
Utilisation super basique de pytest
Introduction à Python Django (2) Win
[Introduction à cx_Oracle] Présentation de cx_Oracle
Utilisation de base de l'interface graphique PySimple
Introduction d'activités appliquant Python
Introduction à la communication série [Python]
[Introduction à Python] <liste> [modifier le 22/02/2020]
Introduction à Python (version Python APG4b)
Résumé de l'utilisation de base de Pandas
Exemple d'utilisation de pickle Python
Une introduction à la programmation Python
[Python] Utilisation correcte de la jointure
Comment utiliser Python lambda
Introduction à Python pour, pendant
[Introduction to Data Scientists] Bases de Python ♬ Fonctions et classes
[Raspi4; Introduction au son] Enregistrement stable de l'entrée sonore avec python ♪
[Dernière version 2020/06] Utilisation basique de la poésie, un outil de gestion des dépendances pour python
[Présentation de l'application Udemy Python3 +] 31. Commentaire
Introduction à Ansible Partie 2 'Grammaire de base'
Introduction à la bibliothèque de calcul numérique Python NumPy
Entraine toi! !! Introduction au type Python (conseils de type)
[Introduction à Python3 Jour 1] Programmation et Python
[Présentation de l'application Udemy Python3 +] 57. Décorateur
[Introduction à Python3 Jour 13] Chapitre 7 Chaînes de caractères (7.1-7.1.1.1)
[Introduction à Python] Comment analyser JSON
[Lambda] [Python] Publier sur Twitter depuis Lambda!
[Présentation de l'application Udemy Python3 +] 56. Clôture
Introduction à Protobuf-c (langage C ⇔ Python)
[Présentation de l'application Udemy Python3 +] 59. Générateur
[Introduction à Python] Utilisons les pandas
Grammaire de base du système Python3 (dictionnaire)
Introduction du package de dessin python pygal
[Introduction à l'application Udemy Python3 +] Résumé
Introduction à l'analyse d'image opencv python