Fabrication industrielle
Internet des objets industriel | Matériaux industriels | Entretien et réparation d'équipement | Programmation industrielle |
home  MfgRobots >> Fabrication industrielle >  >> Industrial programming >> Python

Maîtriser les fonctions lambda Python : exemples pratiques et bonnes pratiques

Maîtriser les fonctions lambda Python : exemples pratiques et bonnes pratiques

Les fonctions lambda, souvent appelées fonctions anonymes, permettent d'écrire de petites routines jetables en une seule ligne. Elles sont pratiques dans le code de style fonctionnel, surtout lorsqu'elles sont utilisées avec map, filter et reduce.

Qu'est-ce qu'une fonction lambda ?

Un lambda est une fonction définie avec le mot-clé lambda au lieu de def. Elle prend zéro ou plusieurs paramètres et renvoie la valeur d'une seule expression. Comme le corps est une expression, un lambda ne peut pas contenir d'instructions ou de plusieurs lignes.

Tout lambda a trois parties essentielles :

Par exemple, lambda x, y: x + y additionne deux nombres. Bien qu'anonyme, le lambda peut être assigné à une variable, passé à une autre fonction, ou appelé immédiatement.

Comment écrire un lambda

Syntaxe formelle :

lambda p1, p2, ... : expression

Remarquez l'absence de parenthèses autour des paramètres. L'expression peut utiliser toute opération Python valide.

Exemple 1 : Additionneur simple

additionneur = lambda x, y: x + y
print(additionneur(1, 2))  # → 3

Exemple 2 : Inspection d'un objet lambda

chaine = 'une sorte de lambda inutile'
print(lambda chaine: print(chaine))  # → <function <lambda> at 0x...>

Ici, le lambda n'est jamais appelé ; le print affiche l'objet fonction que le lambda renvoie.

Exemple 3 : Lambda appelé immédiatement (IIFE)

(lambda x: print(x))('IIFE en action')  # → IIFE en action

Envelopper la définition entre parenthèses et ajouter des parenthèses après appelle le lambda immédiatement.

Exemple 4 : Lambdas vs fonctions régulières

# Fonction régulière
def afficher(arg):
    return print(arg)

# Lambda qui appelle la fonction
guru(lambda: afficher('Appel lambda'))  # → Appel lambda

Les deux extraits produisent la même sortie, mais la version lambda est plus concise quand vous n'avez besoin que d'un appel unique.

Utiliser les lambdas avec les fonctions intégrées

Les lambdas brillent quand ils sont passés comme rappels à des fonctions d'ordre supérieur. Voici des motifs courants.

Expression de fonction appelée immédiatement (IIFE) en Python

(lambda x: x + x)(2)  # → 4

Filter

La fonction filter conserve les éléments qui satisfont un prédicat.

sequences = [10, 2, 8, 7, 5, 4, 3, 11, 0, 1]
filtres = filter(lambda x: x > 4, sequences)
print(list(filtres))  # → [10, 8, 7, 5, 11]

Map

La fonction map transforme chaque élément.

sequences = [10, 2, 8, 7, 5, 4, 3, 11, 0, 1]
carres = map(lambda x: x * x, sequences)
print(list(carres))  # → [100, 4, 64, 49, 25, 16, 9, 121, 0, 1]

Reduce

Utilisez reduce pour accumuler une valeur unique à partir d'une séquence.

from functools import reduce
sequences = [1, 2, 3, 4, 5]
produit = reduce(lambda x, y: x * y, sequences)
print(produit)  # → 120

Quand utiliser (et éviter) les lambdas

Les lambdas sont idéales pour des opérations concises, à usage unique, qui tiennent dans une seule expression. Elles sont courantes dans les constructions de programmation fonctionnelle comme map et filter.

Cependant, évitez les lambdas trop complexes dans le code de production. Les one-liners longs et illisibles peuvent nuire à la maintenabilité. Dans ce cas, une fonction nommée avec une docstring claire est préférable.

Lambdas vs fonctions régulières

FonctionnalitéLambdaFonction régulière
Syntaxelambda x: x + xdef additionner(x): return x + x
CorpsExpression unique seulementPlusieurs instructions autorisées
NomAnonyme (pas d'identifiant)Doit avoir un nom
RetourImplicite depuis l'expressionExplicite avec return
Cas d'usageLogique courte, jetableLogique réutilisable, complexe

À retenir

Python

  1. Maîtriser les arguments de fonctions Python : Positionnels, nommés et paramètres par défaut
  2. Fonctions lambda en Python : Guide pratique des fonctions anonymes
  3. Les fermetures Python expliquées : comment les fonctions imbriquées capturent les variables
  4. Surcharge d'opérateurs en C++ : Guide pratique avec exemples de code
  5. Les Fonctions en C++ Expliquées avec des Exemples de Code Pratiques
  6. Fonction Python print() : Guide pratique avec exemples
  7. Maîtriser la méthode strip() de Python : Guide complet et exemples pratiques
  8. Maîtriser str.count() de Python : Compter caractères et sous-chaînes avec exemples
  9. Maîtriser les chaînes format() en Python avec exemples clairs