Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Apprendre Fonctions Lambda | Récursivité et Fonctions Lambda
Tutoriel sur les Fonctions Python
Section 5. Chapitre 4
single

single

Fonctions Lambda

Glissez pour afficher le menu

Les fonctions lambda sont des fonctions anonymes, c'est-à-dire qu'elles n'ont pas de nom. Elles sont créées à l'aide du mot-clé lambda et sont souvent utilisées pour définir des fonctions courtes que l'on peut spécifier directement sur place.

La syntaxe de base d'une fonction lambda est la suivante :

lambda arguments: expression
  • lambda : le mot-clé indiquant le début de la définition d'une fonction lambda ;
  • arguments : la liste des arguments que la fonction prend en entrée ;
  • expression : l'expression exécutée lorsque la fonction est appelée. Le résultat de l'expression est retourné comme valeur de la fonction.

La caractéristique principale des fonctions lambda est leur syntaxe concise. Elles sont pratiques lorsque l'on souhaite définir une fonction simple sans écrire beaucoup de code.

Argument unique et arguments multiples

Une fonction lambda peut prendre un ou plusieurs arguments :

1234567
# Single argument square = lambda x: x**2 print(square(5)) # 25 # Multiple arguments add = lambda x, y: x + y print(add(3, 5)) # 8

Logique conditionnelle dans les fonctions lambda

Vous pouvez utiliser une expression ternaire pour ajouter une logique conditionnelle à l'intérieur d'une lambda :

123
is_even = lambda x: "even" if x % 2 == 0 else "odd" print(is_even(4)) # "even" print(is_even(7)) # "odd"

Utilisation de lambda avec les fonctions intégrées

Un cas d'utilisation courant consiste à combiner les fonctions lambda avec des fonctions intégrées comme map() et filter() :

123456789
prices = [100, 200, 300] # Apply 10% discount to each price discounted = list(map(lambda price: price * 0.9, prices)) print(discounted) # [90.0, 180.0, 270.0] # Keep only prices above 150 expensive = list(filter(lambda price: price > 150, prices)) print(expensive) # [200, 300]

Vous pouvez également utiliser max() à l'intérieur d'une lambda pour gérer les cas particuliers directement dans l'expression :

123
safe_value = lambda x: max(x, 0) # Returns 0 if x is negative print(safe_value(-5)) # 0 print(safe_value(10)) # 10

La fonction max(a, b) compare deux nombres et retourne le plus grand. Lorsque vous associez une variable à 0 - comme dans max(x, 0) - cela sert de filet de sécurité contre les nombres négatifs :

  • Si x est positif (par exemple, 100), max(100, 0) retourne 100 car 100 est supérieur à 0.

  • Si x est négatif (par exemple, -50), max(-50, 0) retourne 0 car 0 est supérieur à -50.

Cela élimine le besoin d'une instruction if-else complexe lorsque vous souhaitez forcer tout montant négatif ou invalide à devenir instantanément 0.

lambda
Note
Remarque

Les fonctions lambda sont particulièrement adaptées aux logiques courtes et à une seule expression. Si votre fonction nécessite plusieurs lignes ou une logique complexe, une fonction classique définie avec def est préférable.

Tâche

Glissez pour commencer à coder

Il existe une liste de prix (prices), et une expression lambda doit être implémentée pour prendre un prix en paramètre et déduire une taxe de 13% de celui-ci.

  1. Définir une expression lambda en utilisant le mot-clé lambda.
  2. L'expression lambda doit prendre un paramètre (price).
  3. Si le price est négatif, le considérer comme invalide et retourner 0 en utilisant directement la fonction max() dans l'expression lambda.
  4. La lambda doit d'abord vérifier le prix puis déduire 13% du montant valide.
  5. Utiliser une compréhension de liste pour appliquer apply_tax à chaque élément de prices.

Solution

Switch to desktopPassez à un bureau pour une pratique réelleContinuez d'où vous êtes en utilisant l'une des options ci-dessous
Tout était clair ?

Comment pouvons-nous l'améliorer ?

Merci pour vos commentaires !

Section 5. Chapitre 4
single

single

Demandez à l'IA

expand

Demandez à l'IA

ChatGPT

Posez n'importe quelle question ou essayez l'une des questions suggérées pour commencer notre discussion

some-alt