Les fonctions lambda
Crée des mini-fonctions anonymes en une seule ligne.
⏱ 7 minutes
📂 intermediaire
#intermediaire
#lambda
#fonctions
Les fonctions lambda
Une lambda est une fonction anonyme (sans nom) tenant sur une seule ligne. Très utile quand tu as besoin d'une mini-fonction "jetable".
Syntaxe
lambda arguments: expression
L'expression est ce qui est renvoyé, pas besoin de return.
Exemples
double = lambda x: x * 2
print(double(5)) # 10
addition = lambda a, b: a + b
print(addition(3, 4)) # 7
Équivalent avec def
def double(x):
return x * 2
double = lambda x: x * 2 # exactement pareil
Vraie utilité : passer en argument
Avec sorted et la clé de tri :
gens = [("Zazac", 10), ("Lea", 8), ("Tom", 12)]
# Trier par âge (le 2ᵉ élément du tuple)
tries = sorted(gens, key=lambda p: p[1])
print(tries)
# [('Lea', 8), ('Zazac', 10), ('Tom', 12)]
Avec map (transformer chaque élément) :
nombres = [1, 2, 3, 4]
carres = list(map(lambda x: x*x, nombres))
print(carres) # [1, 4, 9, 16]
Avec filter (garder les éléments qui passent un test) :
nombres = [1, 2, 3, 4, 5, 6]
pairs = list(filter(lambda x: x % 2 == 0, nombres))
print(pairs) # [2, 4, 6]
⚠ Ne pas en abuser
Si ta fonction grandit, repasse à def — c'est plus lisible :
# ❌ trop dense
calc = lambda x: (x ** 2 + 3 * x - 1) / (x - 1) if x != 1 else 0
# ✅ mieux
def calc(x):
if x == 1:
return 0
return (x ** 2 + 3 * x - 1) / (x - 1)
💡 Une lambda contient une seule expression. Pas de
if/elsecomplets, pas de boucles : juste une formule.
🧪 Quiz de validation
Réponds à toutes les questions. Il faut 70% de bonnes réponses pour valider le tuto !
🔒 Tu dois être connecté pour passer le quiz.