Fonctions Python Lambda : Guide des fonctions anonymes

Apprenez à écrire des fonctions lambda anonymes en Python. Maîtrisez les modèles de programmation fonctionnelle à l'aide de map(), filter() et sorted() avec la syntaxe lambda.

Essayez dans l'éditeur

Aperçu

En Python, les fonctions lambda, également appelées fonctions anonymes, sont de petites fonctions rapides sur une seule ligne qui ne nécessitent pas le mot-clé standard « def » ni un nom formel. Ils sont destinés à une utilisation temporaire et rapide, vous permettant de transmettre la logique fonctionnelle comme argument directement en ligne. Cela rend votre code plus compact, réduisant ainsi la surcharge liée à l'écriture de fonctions d'assistance à part entière qui ne sont appelées qu'à un seul endroit.

La syntaxe d'une fonction lambda est simple : `arguments lambda : expression`. Contrairement aux fonctions standard, un lambda n'a pas d'instruction « return » explicite ; l'expression est évaluée et renvoyée automatiquement. De plus, les fonctions lambda sont limitées à une seule expression, ce qui signifie que vous ne pouvez pas y écrire de boucles, d'affectations ou de blocs de conditions multilignes complexes, ce qui impose une approche propre et fonctionnelle.

Les fonctions Lambda sont couramment utilisées en combinaison avec des fonctions intégrées d'ordre supérieur telles que `map()` (qui applique une fonction à chaque élément d'une liste), `filter()` (qui conserve les éléments correspondant à une condition) et `sorted()` (qui trie les éléments à l'aide d'une clé de tri personnalisée). Par exemple, trier une liste de dictionnaires par une clé de dictionnaire spécifique est un jeu d'enfant lorsque l'on utilise un lambda comme clé de tri. Comprendre les fonctions lambda vous donne un outil essentiel pour écrire du code Python propre.

Sortie de code et d'exécution

Tri de listes de dictionnaires complexes et filtrage d'ensembles de données à l'aide de fonctions anonymes en ligne.

# Sorting using lambda
students = [
    {"name": "Alice", "grade": 88},
    {"name": "Bob", "grade": 95},
    {"name": "Charlie", "grade": 90}
]

# Sort students by grade (descending)
sorted_students = sorted(students, key=lambda s: s["grade"], reverse=True)
print("Sorted students by grade:")
for student in sorted_students:
    print(f"- {student['name']}: {student['grade']}")

# Filtering using lambda
numbers = [1, 2, 3, 4, 5, 6, 7, 8]
odd_numbers = list(filter(lambda x: x % 2 != 0, numbers))
print(f"\nOdd numbers: {odd_numbers}")
Sortie terminale
Sorted students by grade:
- Bob: 95
- Charlie: 90
- Alice: 88

Odd numbers: [1, 3, 5, 7]

Mise en œuvre étape par étape

  • Passer des critères de tri personnalisés à list.sort() et sorted()
  • Application de transformations en ligne dans les pipelines de science des données
  • Définir des rappels rapides dans les applications d'interface utilisateur basées sur des événements

Foire aux questions

Une fonction lambda peut-elle prendre plusieurs arguments ?

Oui, vous pouvez définir plusieurs arguments séparés par des virgules, par exemple lambda x, y : x + y.

Pourquoi les fonctions lambda sont-elles appelées anonymes ?

Parce qu'ils sont créés sans liaison de nom, contrairement aux fonctions def qui enregistrent un nom spécifique dans l'espace de noms local.

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.