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.
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.
# 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)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
Apprenez à trier une liste en Python à l'aide de la méthode sort() et de la fonction sorted(). Découvrez des exemples de tri de clés personnalisé et d’ordre inverse.
Comment utiliser la compréhension de liste en PythonApprenez à utiliser les compréhensions de listes en Python. Écrivez des boucles concises, appliquez des filtres conditionnels et créez des matrices avec une syntaxe visuelle claire.
Ressources Python recommandées
Développez vos connaissances avec des didacticiels interactifs, des aide-mémoire et des comparaisons de codes associés.
Fonctions Python
Maîtrisez les fonctions Python. Apprenez à écrire du code réutilisable à l'aide de def, à définir des arguments, à renvoyer des valeurs et à comprendre la portée localement et globalement.
Aide-mémoire sur les fonctions du module mathématique Python
Guide de référence rapide pour la bibliothèque standard mathématique Python. Apprenez à utiliser les fonctions trigonométriques, logarithmiques, d'arrondi et arithmétiques.
Python vs JavaScript : quel langage de programmation est le meilleur ?
Une comparaison complète entre Python et JavaScript. Explorez les différences de syntaxe, les performances, les cas d'utilisation (backend et frontend) et des exemples de codage.