Définir des fonctions anonymes ou en ligne (lambda) en Python

Vous devez fournir une fonction courte qui appelle une opération telle que sort(), mais vous ne voulez pas écrire une fonction séparée d’une ligne en utilisant l’instruction def. Au lieu de cela, vous aimeriez un raccourci qui vous permet de spécifier la fonction “en ligne”.

Les fonctions simples qui ne font rien de plus qu’évaluer une expression peuvent être remplacées par une expression lambda. Par exemple:

>>> ajouter = lambda x, y: x + y
>>> ajouter(2,3)
5
>>> ajouter('hello', 'world')
'helloworld'
>>>

L’utilisation de lambda ici est la même qu’après avoir tapé ceci:

>>> def ajouter(x, y):
...     return x + y
...
>>> ajouter(2,3)
5
>>>

Généralement, lambda est utilisé dans le contexte d’une autre opération, comme le tri ou la réduction de données:

>>> noms = ['Alain David', 'Brian Wide',
...           'Rayan Bayle', 'Nilson Wach']
>>> sorted(noms, key=lambda name: name.split()[-1].lower())
['Rayan Bayle', 'Alain David', 'Nilson Wach', 'Brian Wide']
>>>

Bien que lambda vous permette de définir une fonction simple, son utilisation est très limitée. En particulier, une seule expression peut être spécifiée, dont le résultat est la valeur de retour.

Cela signifie qu’aucune autre fonctionnalité du langage, y compris les instructions multiples, les conditions, l’itération et la gestion des exceptions, ne peut pas être incluse.

Vous pouvez écrire beaucoup de code Python sans jamais utiliser lambda. Cependant, vous le rencontrerez de temps en temps dans des programmes où quelqu’un écrit beaucoup de fonctions minuscules qui évaluent diverses expressions, ou dans des programmes qui demandent aux utilisateurs de fournir des fonctions de rappel.

LAISSER UN COMMENTAIRE

Please enter your comment!
Please enter your name here