Fonctions Lambda en Python : définition et utilisation

Formateur Python en ligne pour débutants

Apprenez Python facilement sans surcharge théorique. Résolvez des tâches pratiques avec vérification automatique et écrivez du code directement dans le navigateur.

Start Course

Que sont les fonctions lambda en Python

Les fonctions lambda offrent une manière compacte et élégante de définir des fonctions directement dans les expressions. En langage Python, on les appelle aussi fonctions lambda ou fonctions anonymes. Ce nom vient du fait qu'elles sont créées sans nom et sont généralement utilisées localement, là où il n'est pas pertinent de définir une fonction complète avec le mot-clé def.

Les fonctions lambda se distinguent par leur simplicité et leur facilité d'utilisation. Elles sont souvent employées avec des fonctions d'ordre supérieur comme map(), filter() et sorted(). Les fonctions lambda sont également très utilisées dans les bibliothèques populaires : pandas, NumPy, Flask, Tkinter et bien d'autres outils de l'écosystème Python.

Syntaxe de base des fonctions lambda

Structure d'une expression lambda

La syntaxe d'une fonction lambda en Python est la suivante :

lambda arguments: expression

Où :

  • arguments — la liste des paramètres de la fonction, comme pour une fonction classique
  • expression — une seule expression dont le résultat est renvoyé comme valeur de la fonction

Caractéristiques des fonctions lambda

Les fonctions lambda en Python possèdent plusieurs propriétés importantes :

  • Elles retournent toujours le résultat de l'expression automatiquement
  • Elles n'utilisent pas le mot-clé return
  • Le résultat de l'expression est la valeur de retour
  • Elles ne supportent qu'une seule expression dans le corps de la fonction

Exemples pratiques d'expressions lambda

Opérations mathématiques simples

# Calcul du carré d'un nombre
square = lambda x: x ** 2
print(square(5))  # 25

# Addition de deux nombres
add = lambda a, b: a + b
print(add(3, 7))  # 10

# Vérification de la parité d'un nombre
is_even = lambda x: x % 2 == 0
print(is_even(4))  # True

Lambda avec expressions conditionnelles

# Détermination de la valeur maximale
max_value = lambda x, y: x if x > y else y
print(max_value(10, 15))  # 15

# Catégorisation des nombres
categorize = lambda x: "positif" if x > 0 else "négatif" if x < 0 else "zéro"

Comparaison entre lambda et fonctions classiques

Différences clés

Caractéristique Fonction classique (def) Fonction lambda
Syntaxe def func(x): return x * 2 lambda x: x * 2
Nombre d'expressions Plusieurs Une seule
Nommage Possède un nom Généralement anonyme
Domaine d'utilisation Réutilisation Opérations ponctuelles
Documentation Supporte les docstrings Ne supporte pas
Annotations de type Supportées Support limité

Quand choisir lambda

Les fonctions lambda sont particulièrement efficaces dans les cas suivants :

  • Opérations simples et courtes
  • Utilisation comme arguments d'autres fonctions
  • Calculs temporaires sans besoin de réutilisation
  • Travail avec des fonctions d'ordre supérieur

Utilisation de lambda avec les fonctions d'ordre supérieur

Fonction map()

La fonction map() applique une fonction donnée à chaque élément d'un itérable :

numbers = [1, 2, 3, 4, 5]
squares = list(map(lambda x: x**2, numbers))
print(squares)  # [1, 4, 9, 16, 25]

# Conversion de chaînes en majuscules
words = ["hello", "world", "python"]
uppercase = list(map(lambda s: s.upper(), words))
print(uppercase)  # ['HELLO', 'WORLD', 'PYTHON']

Fonction filter()

Filter() crée un itérateur à partir des éléments pour

Blogs

Book Recommendations