Comment utiliser les fonctions Lambda en Python (fonctions anonymes)

Apprenez à utiliser les fonctions lambda en Python. Maîtrisez les fonctions anonymes, les rappels en ligne et le tri des données de liste avec des clés lambda.

Essayez cette solution dans l'éditeur

Aperçu

En Python, les fonctions sont des citoyens de première classe, ce qui signifie qu'elles peuvent être affectées à des variables, transmises comme arguments à d'autres fonctions et renvoyées par des fonctions. Alors que les fonctions standard sont déclarées à l'aide du mot-clé « def », Python fournit également une syntaxe abrégée pour créer des fonctions en ligne anonymes : les fonctions « lambda ».

Une fonction lambda est définie avec le mot-clé « lambda », suivi d'une liste d'arguments, de deux points et d'une seule expression. La syntaxe est « arguments lambda : expression ». Contrairement aux fonctions « def », les lambdas ne nécessitent pas d'instruction « return » ; le résultat de l'expression est renvoyé automatiquement. Ils sont limités à une seule ligne logique, ce qui les rend idéaux pour des opérations simples et ponctuelles.

Les fonctions Lambda sont le plus souvent utilisées comme arguments pour des fonctions d'ordre supérieur telles que `sorted()`, `map()` et `filter()`. Par exemple, vous pouvez transmettre une fonction lambda à l'argument `key` de `sorted()` pour définir des critères de tri personnalisés, ou les utiliser comme fonctions de rappel légères dans des applications graphiques ou basées sur des événements.

Sortie de code et d'exécution

Ce script montre la construction de fonctions anonymes légères à l'aide de lambda.

lambda_functions.py
Essayez dans l'éditeur
# 1. Simple lambda function assigned to a variable
double = lambda x: x * 2
print("Double of 5:", double(5))

# 2. Multi-argument lambda
add = lambda x, y: x + y
print("Sum of 3 + 4:", add(3, 4))

# 3. Using lambda as a sorting key (sorting by age)
people = [
    {"name": "Alice", "age": 28},
    {"name": "Bob", "age": 22},
    {"name": "Charlie", "age": 35}
]
people.sort(key=lambda person: person["age"])
print("Sorted by age:", people)
Sortie terminale
Double of 5: 10
Sum of 3 + 4: 7
Sorted by age: [{'name': 'Bob', 'age': 22}, {'name': 'Alice', 'age': 28}, {'name': 'Charlie', 'age': 35}]

Mise en œuvre étape par étape

  • Écrivez le mot-clé lambda suivi de vos noms de paramètres séparés par des virgules.
  • Placez deux points, suivis de l'expression unique que vous souhaitez évaluer et renvoyer.
  • Transmettez le lambda directement en tant que rappel à des fonctions telles que sorted(), map() ou filter().

Foire aux questions

Une fonction lambda peut-elle contenir des boucles ou plusieurs instructions ?

Non, les fonctions lambda en Python sont strictement limitées à une seule expression. Si vous avez besoin d'une logique complexe, de boucles ou d'affectations de variables, vous devez définir une fonction standard à l'aide de def.

Dois-je attribuer des fonctions lambda aux variables ?

Généralement non. Les directives PEP 8 suggèrent d'utiliser une instruction def standard au lieu d'attribuer un lambda à une variable, car les fonctions standard fournissent de meilleurs noms de trace de pile.

Sujets connexes

Ressources Python recommandées

Développez vos connaissances avec des didacticiels interactifs, des aide-mémoire et des comparaisons de codes associés.