À propos des fonctions Lambda
Les fonctions Lambda dans Python sont des fonctions sans nom et anonymes qui peuvent être utilisées pour créer des expressions qui renvoient une sorte de valeur basée sur les calculs mis en œuvre dans l'expression elle-même. La logique dans ces fonctions lambda peut être écrite de manière concise, généralement quelque chose qui s'intègre facilement sur une seule ligne. Parfois, ils peuvent être difficiles à lire, surtout si les gens ne connaissent pas bien les fonctions de lambda. Cependant, ils ont l'avantage de garder les choses ensemble dans les blocs de code et ils aident mieux à comprendre le contexte.
Syntaxe des fonctions lambda
La syntaxe d'une fonction lambda à Python ressemble à ceci:
multiply = lambda x, y: x * yLa première partie de l'expression de lambda, juste avant le colon (:) symbole, prend les paramètres comme arguments. La deuxième partie, après le symbole du côlon, doit être une valeur de retour. Cette valeur de retour peut également être une expression avec logique. En fait, les fonctions lambda sont utilisées presque tout le temps pour implémenter une logique sur les arguments fournis, puis renvoyer le résultat final.
Pour tester la fonction lambda indiquée ci-dessus, vous pouvez utiliser l'énoncé suivant:
Imprimer (multiplier (3, 4))Vous devriez obtenir la sortie suivante:
12La même fonction lambda serait autrement écrite de la manière suivante:
Def multiplier (x, y):Les deux échantillons de code donneront la même sortie. Quelques autres exemples de fonctions lambda sont expliqués ci-dessous.
Passer Lambda fonctionne comme des arguments
Vous pouvez utiliser des fonctions lambda pour effectuer des calculs et fournir la valeur de retour comme arguments à d'autres fonctions. La méthode de trier dans Python prend un argument «clé» où vous pouvez spécifier une fonction appelable qui prend un seul argument à des fins de tri. Au lieu de définir d'abord une fonction distincte qui renvoie une clé, puis de fournir la référence de la fonction à l'argument, vous pouvez simplement utiliser une fonction lambda.
fruits = [(2, «pommes»), (4, «oranges»), (3, «bananes»)]Le code ci-dessus produira la sortie suivante:
[(2, «pommes»), (3, «bananes»), (4, «oranges»)]]Vous pouvez utiliser Lambda dans une telle méthode qui prend une fonction appelé comme argument (méthode de filtre par exemple).
Utilisez des fonctions lambda dans les compréhensions de la liste
Vous pouvez utiliser Lambda dans les compréhensions de la liste et une liste sera dûment créée à partir des valeurs renvoyées par l'expression de lambda.
get_square = lambda a: a * aCela produira la sortie suivante:
[0, 1, 4, 9, 16]L'exemple de code ci-dessus peut également être écrit de la manière suivante où «X» est fourni à la fonction lambda comme un argument:
carrés = [(lambda x: x * x) (x) pour x dans la plage (5)]Cet exemple illustre simplement l'utilisation des fonctions lambda dans les compréhensions de la liste. Sinon, vous pouvez calculer facilement les carrés à l'aide d'une instruction de compréhension de liste minimale:
Imprimer ([x * x pour x dans la plage (5)])Utilisez des fonctions lambda dans les dictionnaires Python
L'exemple de code ci-dessous illustre les fonctions lambda utilisées dans les paires de valeurs clés dans un dictionnaire Python. Une fois défini, vous pouvez appeler ces fonctions à tout moment.
calculer = 'sum': lambda a, b: a + b, 'différence': lambda a, b: a - bVous devez obtenir la sortie suivante après avoir exécuté le code ci-dessus:
9Conclusion
Les fonctions de lambda offrent un excellent moyen d'écrire des expressions de sténographie et de garder les choses soignées et organisées sans créer beaucoup de fonctions nommées. Cependant, la surutilisation de fonctions Lambda peut rendre le code difficile à lire, surtout lorsque le code est considéré par plus d'une personne. Il vaut mieux avoir un code plus lisible (même si c'est verbeux) que d'avoir quelque chose qui peut être un peu difficile à comprendre sur les revisitions.