🐍 PyTutos

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/else complets, 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.