Fonctions Python Lambda avec exemples

Publié: 2022-06-04

Table des matières

Python — Une introduction

Python est un langage de programmation à usage général extrêmement populaire. Il s'agit d'un langage interprété de haut niveau qui met l'accent sur la lisibilité du code grâce à l'utilisation d'une indentation significative. Python est utilisé par les programmeurs pour écrire des codes propres et logiques pour des projets de toute envergure.

Python a été conçu dans les années 1980 comme successeur du langage de programmation ABC par Guido Van Rossum. Depuis lors, Python est resté un langage de programmation populaire en raison de sa polyvalence.

Fonctions — Une introduction

Les fonctions sont des blocs de code qui fonctionnent lorsqu'elles peuvent être appelées n fois dans un programme. Ce sont des instructions de code structurées qui remplissent une fonction spécifique et peuvent être utilisées à tout moment. Les fonctions sont fondamentalement classées comme suit :

  • Fonction définie par l'utilisateur (USF) — Fonctions personnalisables qui peuvent être modifiées selon les exigences du programmeur.
  • Fonctions intégrées (BIF) — Fonctions qui ne peuvent pas être personnalisées et doivent être utilisées telles qu'elles sont disponibles.

Apprenez des cours de science des données en ligne sur upGrad

Fonctions Python Lambda

Les fonctions Python Lambda sont essentiellement anonymes car elles ne possèdent pas de nom défini. Une fonction def est utilisée pour désigner une fonction normale en Python. Pendant ce temps, le mot-clé Lambda est utilisé pour définir une fonction Python anonyme.

La fonction Lambda est une petite fonction qui peut prendre plusieurs arguments mais une seule expression. Elles ont également une syntaxe plus restrictive mais concise que les fonctions Python classiques. La fonction lambda a été ajoutée au langage Python en 1994 avec les fonctions map (), filter () et reduce ().

Consultez nos programmes US - Data Science

Programme de certificat professionnel en science des données et analyse commerciale Master of Science en science des données Master of Science en science des données Programme de certificat avancé en science des données
Programme exécutif PG en science des données Bootcamp de programmation Python Programme de certificat professionnel en science des données pour la prise de décision commerciale Programme avancé en science des données

Pour définir une fonction anonyme, il faut utiliser le mot clé lambda comme def est utilisé pour les fonctions normales. Il y a trois parties dans une fonction anonyme définie en Python :

  • Le mot-clé lambda
  • Paramètres ou une variable liée
  • Corps de fonction

Syntaxe

La syntaxe d'une fonction lambda est la suivante :

Lambda p1, p2 : expression

Les p1 et p2 sont les paramètres ici. Il n'y a aucune restriction pour l'ajout de paramètres dans la fonction lambda. Vous pouvez en ajouter autant ou aussi peu que vous le souhaitez. Mais la fonction lambda est syntaxiquement restreinte à une expression.

Exemples de fonction lambda en Python :

Exemple 1

x = "Fonction Lambda"

# lambda obtient le laissez-passer pour imprimer

(lambda x : print(x))(x)

Production

Fonction lambda

Exemple 2

x = lambda a : a + 10

impression(x(5))

Production

15

Nos apprenants ont également lu : Apprendre Python en ligne gratuitement

Différences entre la fonction normale et la fonction lambda

La fonction lambda possède certaines différences syntaxiques par rapport aux fonctions normales.

  • Seules les expressions et non les instructions sont utilisées dans le corps. Si des instructions telles que pass, assert, return ou raise sont utilisées, la sortie affichera une SyntaxError.

Exemple

>>> (lambda x : affirmer x == 2)(2)

Fichier "<input>", ligne 1

(lambda x : affirmer x == 2)(2)

^

ErreurDeSyntaxe: Syntaxe invalide

  • Une fonction lambda ne peut exister qu'en tant qu'expression unique. Même si l'expression est répartie dans tout le corps à l'aide de plusieurs chaînes, elle ne peut rester qu'une seule expression.

Exemple :

>>> (lambda x :

… (x % 2 et 'impair' ou 'pair'))(3)

'étrange'

Lorsque l'argument lambda est impair, le code renvoie la chaîne impaire et paire lorsqu'elle ne l'est pas. Le code s'étend sur deux lignes car il est à l'intérieur des parenthèses mais reste comme une seule expression.

  • La fonction lambda ne prend pas en charge les annotations de type. L'ajout d'annotations à une syntaxe lambda entraînera une erreur de syntaxe.
  • IIFE ou Immediately Invoked Function Expression est une fonction exécutée dès qu'elle est définie. Il est également connu sous le nom de fonction anonyme auto-exécutable. IIFE est une conséquence directe de la fonction lambda, car une fonction lambda est appelable telle qu'elle est définie.

Voyons maintenant les principales différences entre les fonctions normales et les fonctions lambda :

(La source)

Fonctions Lambda – Avantages et inconvénients

Avantages

  • Cela rend le code plus lisible.
  • Idéal pour les fonctions qui ne sont utilisées qu'une seule fois.
  • Facile à comprendre et peut être utilisé pour des explications logiques simples.

Les inconvénients:

  • Plusieurs expressions indépendantes ne peuvent pas être exécutées.
  • L'utilisation de la fonction lambda n'est pas idéale si un code s'étend sur plus d'une ligne dans une fonction normale (def).
  • Toutes les entrées, sorties et opérations ne peuvent pas être expliquées dans une docstring comme dans une fonction normale.

Où utiliser les Lambda ?

Même si les fonctions def normales et les fonctions lambda présentent des différences essentielles, en interne, elles sont traitées en interne.

  • L'utilisation courante des fonctions lambda en Python est pour la programmation fonctionnelle. Vous pouvez utiliser lambda dans la programmation fonctionnelle pour fournir une fonction en tant que paramètre à une autre fonction.
  • Si vous devez réduire le nombre de lignes pour spécifier une fonction, les lambdas sont la solution.
  • Lambda est également utilisé avec des fonctions d'ordre supérieur telles que map(), reduce(), etc.
  • La réponse aux événements du cadre d'interface utilisateur peut être suivie à l'aide des fonctions lambda.

Où s'abstenir d'utiliser les fonctions lambda ?

  • L'écriture de fonctions lambda compliquées n'est pas une bonne pratique car elle sera difficile à déchiffrer.
  • S'abstenir d'utiliser les fonctions lambda pour les opérations récurrentes.
  • Si le code ne suit pas le Python Style Guide (PEP8).

Les fonctions Lambda sont testées exactement comme les fonctions normales. unittest et doctest peuvent être utilisés pour cela.

Lisez nos articles populaires sur les États-Unis et la science des données

Cours d'analyse de données avec certification Cours en ligne gratuit JavaScript avec certification Questions et réponses les plus posées lors des entretiens avec Python
Questions et réponses de l'entrevue d'analyste de données Meilleures options de carrière en science des données aux États-Unis [2022] SQL vs MySQL - Quelle est la différence
Un guide ultime des types de données Salaire de développeur Python aux États-Unis Salaire d'analyste de données aux États-Unis : salaire moyen

Fonction Lambda avec filtre()

Filter() est une fonction Python intégrée et une liste en tant qu'arguments. Filter () est utilisé lorsque tous les éléments itérables sont sur une liste et qu'une autre liste est renvoyée contenant les éléments pour lesquels la fonction est vraie.

Exemple :

# Code Python pour illustrer

# filtre() avec lambda()

li = [5, 7, 22, 97, 54, 62, 77, 23, 73, 61]

liste_finale = liste(filtre(lambda x : (x%2 != 0) , li))

imprimer (liste_finale)

Production:

[5, 7, 97, 77, 23, 73, 61]

(la source)

Exemple :

# Programme pour filtrer uniquement les éléments pairs d'une liste

ma_liste = [1, 5, 4, 6, 8, 11, 3, 12]

nouvelle_liste = liste(filtre(lambda x : (x%2 == 0) , ma_liste))

imprimer (nouvelle_liste)

Production

[4, 6, 8, 12]

Fonction Lambda avec map()

La fonction map est utilisée lorsque tous les éléments sont dans la liste, et la liste est renvoyée avec les éléments renvoyés par cette fonction pour chaque élément.

Exemple : Pour doubler la valeur de chaque élément de la liste, le code est le suivant :

ma_liste = [1, 5, 4, 6, 8, 11, 3, 12]

nouvelle_liste = liste(carte(lambda x: x * 2 , ma_liste))

imprimer (nouvelle_liste)

Production:

[2, 10, 8, 12, 16, 22, 6, 24]

Exemple : Pour mettre au cube tous les nombres de la liste, le code est le suivant

liste_1 = [1,2,3,4,5,6,7,8,9]

au cube = map(lambda x : pow(x,3), list_1)

liste (au cube)

Production:

[1, 8, 27, 64, 125, 216, 343, 512, 729]

Fonction Lambda avec fonction reduce()

La fonction reduce() en Python est une liste et un argument. Elle est appelée pour retourner une liste réduite itérable et nouvelle. C'est un peu similaire à la fonction d'addition.

Exemple 1

Remarque : cet exemple provient de la bibliothèque functools.

Pour obtenir la somme d'une liste, le code serait,

# Code Python pour illustrer

# réduire() avec lambda()

# pour obtenir la somme d'une liste

de functools importer réduire

li = [5, 8, 10, 20, 50, 100]

somme = réduire((lambda x, y : x + y), li)

impression (somme)

Production:

193

Conclusion

L'utilisation des fonctions lambda en Python est depuis longtemps un sujet controversé parmi les programmeurs. S'il est vrai que les lambdas peuvent être remplacés par des fonctions intégrées, des compréhensions de liste et des bibliothèques standard, une compréhension des fonctions lambda est également nécessaire. Il vous aide à comprendre les principes fondamentaux de la programmation et à écrire de meilleurs codes.

Même si vous n'utilisez pas personnellement les fonctions lambda, il peut arriver que vous les rencontriez dans les programmes d'autres personnes. Il est donc recommandé d'avoir de toute façon une connaissance de base des fonctions lambda.

Si vous cherchez à apprendre Python à part entière et à améliorer votre carrière dans la science des données et l'analyse commerciale, le programme de certificat professionnel en ligne d'upGrad en science des données et analyse commerciale de la meilleure université américaine - Université du Maryland est votre meilleur pari.

Le programme offre une chance d'étudier dans l'une des 100 meilleures universités mondiales et d'obtenir un certificat du Maryland Smith pour augmenter vos chances de réussite dans le domaine. Il s'agit d'un cours de 9 mois avec accès à plus de 300 partenaires d'embauche, des opportunités d'entretien assurées pour les étudiants de première année et six appels de mentorat.

Que sont les décorateurs en Python ?

Une fonction en Python qui prend l'argument d'une fonction et renvoie une autre fonction s'appelle un décorateur. Il est noté avec la syntaxe du décorateur. Les décorateurs peuvent être appliqués dans les fonctions lambda mais pas avec la syntaxe des décorateurs. Il est généralement implémenté à des fins de débogage. Alternativement, une fonction lambda peut être utilisée comme décorateur, mais ce n'est pas conseillé.

Que sont les arguments dans les fonctions Python Lambda ?

Les fonctions Lambda comme les fonctions def normales prennent en charge les différentes manières de transmettre des arguments. Ceux-ci incluent : Argument de mot-clé uniquement Arguments de mot-clé/ Arguments NAmed Varargs/ Liste variable d'arguments Liste variable d'arguments de mot-clé.

Que sont les fermetures dans les fonctions Python Lambda ?

Les fermetures ou fermetures lexicales sont des fonctions où chaque variable libre, à l'exception des paramètres, est liée à une valeur particulière dans la portée englobante de la fonction. Les fermetures peuvent être appelées de n'importe où. Les fonctions Lambda comme les fonctions def normales peuvent être des fermetures.