Que sont les fonctions Lambda et comment les utiliser?

Apprenez les fonctions lambda Python ainsi que la différence entre les fonctions normales et les fonctions lambda et comment elles peuvent être utilisées dans filter (), map (), reduction ().

Un nom est une convention utilisée pour désigner ou adresser une entité. Presque tout autour de nous a un nom. Le monde de la programmation va également dans ce sens. Mais est-il indispensable de tout nommer? Ou pouvez-vous avoir quelque chose qui est simplement «anonyme»? La réponse est oui. ' fournit des fonctions Lambda, également appelées fonctions anonymes, qui sont en fait sans nom. Alors allons-y pour en savoir plus sur ces «mystères anonymes» de Python, dans l’ordre suivant.



Alors commençons :)



Pourquoi utiliser les fonctions Python Lambda?


L'objectif principal des fonctions anonymes entre en scène lorsque vous n'avez besoin d'une fonction qu'une seule fois. Ils peuvent être créés partout où ils sont nécessaires. Pour cette raison, les fonctions Python Lambda sont également connues sous le nom de fonctions jetables qui sont utilisées avec d'autres fonctions prédéfinies telles que filter (), map (), etc. Ces fonctions aident à réduire le nombre de lignes de votre code par rapport à Ordinaire .

Pour le prouver, allons plus loin et découvrons les fonctions Python Lambda.



Que sont les fonctions Python Lambda?


Les fonctions Python Lambda sont des fonctions qui n'ont pas de nom. Ils sont également connus sous le nom de fonctions anonymes ou sans nom. Le mot «lambda» n’est pas un nom, mais un mot-clé. Ce mot clé spécifie que la fonction qui suit est anonyme.

Maintenant que vous savez à quoi ces fonctions anonymes font référence, passons plus loin pour voir comment vous écrivez ces fonctions Python Lambda.

Comment écrire des fonctions Lambda en Python?

Une fonction Lambda est créée à l'aide de l'opérateur lambda et sa syntaxe est la suivante:



SYNTAXE:

arguments lambda: expression

Python fonction lambda peut avoir n'importe quel nombre d'arguments mais il suffit une expression. Les entrées ou arguments peuvent commencer à 0 et aller jusqu'à n'importe quelle limite. Comme pour toute autre fonction, il est parfaitement bien d’avoir des fonctions lambda sans entrées. Par conséquent, vous pouvez avoir des fonctions lambda dans l'un des formats suivants:

EXEMPLE:

lambda: 'Spécifiez l'objectif'

Ici, la fonction lambda ne prend aucun argument.

EXEMPLE:

lambda unun: 'Spécifiez l'utilisation d'unun'

Ici, lambda prend une entrée qui est unun.

tutoriel informatica pour les débutants pdf

De même, vous pouvez avoir lambda unun, à2, à3..àn.

Prenons quelques exemples pour illustrer ceci:

EXEMPLE 1:

a = lambda x: x * x impression (a (3))

PRODUCTION: 9

EXEMPLE 2:

a = lambda x, y: x * y impression (a (3,7))

PRODUCTION: vingt et un

Comme vous pouvez le voir, j'ai pris deux exemples ici. Le premier exemple utilise la fonction lambda avec une seule expression tandis que le second exemple a deux arguments qui lui sont passés. Veuillez noter que les deux fonctions ont une seule expression suivie des arguments. Par conséquent, les fonctions lambda ne peuvent pas être utilisées là où vous avez besoin d'expressions multilignes.

D'un autre côté, les fonctions python normales peuvent prendre n'importe quel nombre d'instructions dans leurs définitions de fonction.

Comment les fonctions anonymes réduisent-elles la taille du code?

Avant de comparer la quantité de code requise, commençons par noter la syntaxe de et comparez-le à celui des fonctions lambda décrites précédemment.

Toute fonction normale en Python est définie à l'aide d'un def mot-clé comme suit:

SYNTAXE:

def nom_fonction (paramètres):
déclaration (s)

Comme vous pouvez le voir, la quantité de code requise pour une fonction lambda est bien inférieure à celle des fonctions normales.

Réécrivons l'exemple que nous avons pris plus tôt en utilisant maintenant les fonctions normales.

EXEMPLE:

def my_func (x): retourne x * x print (my_func (3))

PRODUCTION: 9

Comme vous pouvez le voir, dans l'exemple ci-dessus, nous avons besoin d'une instruction return dans my_func pour évaluer la valeur du carré de 3. Au contraire, la fonction lambda n'utilise pas cette instruction return, mais le corps de la fonction anonyme est écrit dans la même ligne que la fonction elle-même, après le symbole deux-points. Par conséquent, la taille de la fonction est inférieure à celle de my_func.

Cependant, les fonctions lambda dans les exemples ci-dessus sont appelées en utilisant d'autres une. Ceci est fait parce que ces fonctions sont sans nom et nécessitent donc un nom pour être appelé. Mais, ce fait peut sembler déroutant quant à la raison pour laquelle utiliser de telles fonctions sans nom lorsque vous devez en fait attribuer un autre nom pour les appeler? Et bien sûr, après avoir attribué le nom a à ma fonction, elle ne reste plus sans nom! Droite?

C’est une question légitime, mais le fait est que ce n’est pas la bonne façon d’utiliser ces fonctions anonymes.

Les fonctions anonymes sont mieux utilisées dans d'autres fonctions d'ordre supérieur qui utilisent une fonction comme argument ou renvoient une fonction comme sortie. Pour le démontrer, passons maintenant à notre prochain sujet.

Fonctions Python Lambda dans les fonctions définies par l'utilisateur:

Comme mentionné ci-dessus, les fonctions lambda sont utilisées dans d'autres fonctions pour marquer le meilleur avantage.

fonction de tri en c ++

L'exemple suivant consiste en new_func qui est une fonction python normale qui prend un argument x. Cet argument est ensuite ajouté à un argument inconnu y qui est fourni via la fonction lambda.

EXEMPLE:

def new_func (x): return (lambda y: x + y) t = new_func (3) u = new_func (2) print (t (3)) print (u (3))

PRODUCTION:

6
5
Comme vous pouvez le voir, dans l'exemple ci-dessus, la fonction lambda qui est présente dans new_func est appelée chaque fois que nous utilisons new_func (). À chaque fois, nous pouvons transmettre des valeurs séparées aux arguments.

Maintenant que vous avez vu comment utiliser des fonctions anonymes dans des fonctions d'ordre supérieur, passons à présent pour comprendre l'une de ses utilisations les plus populaires qui se trouve dans les méthodes filter (), map () et reduction ().

Comment utiliser les fonctions anonymes dans filter (), map () et reduction ():

Fonctions anonymes dans filtre():

filtre():

La méthode filter () est utilisée pour filtrer les itérables donnés (listes, ensembles, etc.) à l'aide d'une autre fonction, passée en argument, pour tester que tous les éléments sont vrais ou faux.

La syntaxe de cette fonction est:

SYNTAXE:

filtre (fonction, itérable)

Considérons maintenant l'exemple suivant:

EXEMPLE:

ma_liste = [2,3,4,5,6,7,8] nouvelle_liste = liste (filtre (lambda a: (a / 3 == 2), ma_liste)) print (nouvelle_liste)

PRODUCTION: [6]

Ici, ma_liste est une liste de valeurs itérables qui est passée à la fonction de filtrage. Cette fonction utilise la fonction lambda pour vérifier s'il y a des valeurs dans la liste, qui équivaudront à 2 lorsqu'elles sont divisées par 3. La sortie consiste en une liste qui satisfait l'expression présente dans la fonction anonyme.

différence entre la carte de hachage et la table de hachage

carte():

La fonction map () en Python est une fonction qui applique une fonction donnée à tous les itérables et renvoie une nouvelle liste.

SYNTAXE:

map (fonction, itérable)

Prenons un exemple pour illustrer l’utilisation des fonctions lambda dans la fonction map ():

EXEMPLE:

ma_liste = [2,3,4,5,6,7,8] nouvelle_liste = liste (carte (lambda a: (a / 3! = 2), li)) print (nouvelle_liste)

PRODUCTION:

[Vrai, Vrai, Vrai, Vrai, Faux, Vrai, Vrai]

La sortie ci-dessus montre que, chaque fois que la valeur des itérables n'est pas égale à 2 lorsqu'elle est divisée par 3, le résultat renvoyé doit être True. Par conséquent, pour tous les éléments de ma_liste, il renvoie vrai sauf pour la valeur 6 lorsque la condition passe à False.

réduire():

La fonction reduction () est utilisée pour appliquer une autre fonction à une liste d'éléments qui lui sont passés en paramètre et renvoie finalement une valeur unique.

La syntaxe de cette fonction est la suivante:

SYNTAXE:

réduire (fonction, séquence)

EXEMPLE:

à partir de functools importer réduire réduire (lambda a, b: a + b, [23,21,45,98])

L'exemple ci-dessus est illustré dans l'image suivante:

réduire-python lambda-edureka

PRODUCTION: 187

La sortie montre clairement que tous les éléments de la liste sont ajouté continuellement pour renvoyer le résultat final.

Avec cela, nous arrivons à la fin de cet article sur «Python Lambda». J'espère que vous êtes clair avec tout ce qui a été partagé avec vous. Assurez-vous de pratiquer autant que possible et inversez votre expérience.

Vous avez une question pour nous? Veuillez le mentionner dans la section commentaires de ce blog «Python Lambda» et nous vous répondrons dans les plus brefs délais.

Pour obtenir des connaissances approfondies sur Python ainsi que sur ses différentes applications, vous pouvez vous inscrire en direct avec assistance 24/7 et accès à vie.