Blog de Pythonia
Guides, IA, tutos et newsletter pour devenir une bête en programmation

Fonctions Lambdas en Python
Mis à jour le Oct. 4, 2022, 2:03 p.m.
1- Que sont les fonctions lambdas?
2- Quand les utilise-t-on?
3- Avantages
4- Limites
5- Comparaison entre une fonction lambda et une fonction normale
Que sont les fonctions lambdas?
Les fonctions lambda sont des fonctions anonymes en Python, c'est-à-dire des fonctions qui ne sont pas associées à un nom. On utilise généralement les fonctions lambda lorsque l'on a besoin d'une fonction simple et courte pour une utilisation unique, plutôt que de déclarer une fonction à part entière.
Quand les utilise-t-on?
Si vous avez besoin d'une fonction pour trier une liste d'éléments en fonction d'un critère spécifique, vous pouvez utiliser une fonction lambda pour la trier.
Exemple 1: Trier une liste d'éléments
# Utilisation d'une fonction lambda pour trier une liste d'entiers
numbers = [1,7, -2, -8, 5]
# Tri de la liste en fonction de la valeur absolue des nombres
numbers.sort(key=lambda x: abs(x))
# Affiche la liste triée
print(numbers) # Affiche: [1, -2, 5, 7, -8]
Dans cet exemple, la fonction lambda prend un seul argument (x
) et renvoie la valeur absolue de x
. La fonction sort
utilise cette fonction lambda pour trier la liste en fonction de la valeur absolue des nombres dans la liste.
Exemple 2: Filtrer une liste pour ne garder que les nombre pairs
nombres = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
nombres_pairs = list(filter(lambda x: x % 2 == 0, nombres))
print(nombres_pairs) # Résultat : [2, 4, 6, 8, 10]
En général, les fonctions lambda peuvent être utiles lorsque vous avez besoin d'une fonction simple et courte pour une utilisation unique, sans avoir à déclarer une fonction à part entière. Cependant, les fonctions lambda ne doivent pas être utilisées lorsque vous avez besoin d'une fonction plus complexe ou lorsque vous avez besoin de réutiliser la fonction à plusieurs endroits dans votre code. Dans ces cas, il est préférable de déclarer une fonction à part entière plutôt que d'utiliser une fonction lambda.
Avantages
Les fonctions lambda offrent plusieurs avantages :
Concision : Elles permettent de définir des fonctionnalités simples en quelques lignes de code, évitant ainsi la création de fonctions distinctes.
Lisibilité : Les fonctions lambda peuvent rendre le code plus lisible en évitant la nécessité de créer des fonctions auxiliaires ou des fonctions nommées pour des tâches simples.
Flexibilité : Elles sont utiles pour une utilisation directe dans des expressions ou des fonctions telles que map(), filter(), sorted(), etc., offrant ainsi une plus grande flexibilité dans la programmation.
Elles sont souvent très utiles en data science, notamment avec la librairie Pandas.
Limites
Complexité limitée : Les fonctions lambda sont conçues pour des opérations simples et ponctuelles. Si une fonction devient plus complexe, il est préférable de la définir sous la forme d'une fonction nommée régulière.
Absence de déclarations : Les fonctions lambda ne prennent pas en charge les déclarations telles que return, yield, etc. Elles ne peuvent être utilisées que pour des expressions évaluables.
Comparaison entre une fonction lambda et une fonction normale
Fonction lambda | Fonction normale |
Définie sans nom de fonction | Définie avec un nom de fonction |
Syntaxe : 'lambda arguments: expression' | Syntaxe : 'def nom_fonction(arguments):' |
Utilisée pour des opérations simples et ponctuelles | Utilisée pour des opérations complexes |
Pas de déclarations telles que return, yield, etc. | Peut inclure des déclarations |
Utilisation concise et immédiate | Peut être réutilisée plusieurs fois |
Moins lisible pour les expressions complexes | Plus lisible avec des commentaires et des déclarations explicites |
Malgré ces différences, les fonctions lambda et les fonctions normales sont toutes deux des fonctions en Python et peuvent être utilisées pour effectuer des opérations et retourner des résultats. Il est important de choisir le type de fonction en fonction de la complexité de l'opération, de la réutilisabilité et de la lisibilité du code.
Aucun commentaire pour cet article.