Utiliser Lambda avec la Fonction sorted()
L'un des cas d'utilisation les plus courants pour les fonctions lambda est de servir de fonction rapide et en ligne pour les fonctions d'ordre supérieur (fonctions qui prennent d'autres fonctions comme arguments). Un excellent exemple est la fonction intégrée sorted() de Python, qui peut accepter un argument key. La key spécifie une fonction à appeler sur chaque élément avant d'effectuer les comparaisons de tri.
Imaginez que vous avez une liste de tuples, où chaque tuple représente un produit et son prix. Vous souhaitez trier cette liste en fonction du prix.
Ouvrez le fichier ~/project/lambda_sorted.py dans l'éditeur. Ajoutez le code suivant :
## A list of tuples (product, price)
products = [('Laptop', 1200), ('Mouse', 25), ('Keyboard', 75)]
## Sort the list by price (the second element of each tuple) using a lambda function
sorted_products = sorted(products, key=lambda item: item[1])
## Print the sorted list
print(sorted_products)
Dans ce code, key=lambda item: item[1] indique à sorted() d'utiliser le deuxième élément (item[1], qui est le prix) de chaque tuple comme valeur pour le tri. Ceci est beaucoup plus concis que de définir une fonction séparée avec def.
Enregistrez le fichier et exécutez-le depuis le terminal :
python3 ~/project/lambda_sorted.py
Vous verrez la liste des produits triée par prix par ordre croissant.
[('Mouse', 25), ('Keyboard', 75), ('Laptop', 1200)]
Ce modèle est extrêmement courant et utile pour trier des structures de données complexes d'une manière simple et lisible.