Comment utiliser les fonctions lambda pour les opérations simples sur les listes en Python

PythonPythonBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Les fonctions lambda de Python offrent un moyen concis et puissant pour effectuer des opérations simples sur des listes. Dans ce tutoriel, nous allons explorer comment appliquer les fonctions lambda à des opérations courantes sur les listes, en fournissant des exemples pratiques et des cas d'utilisation pour améliorer vos compétences en programmation Python.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL python(("Python")) -.-> python/FunctionsGroup(["Functions"]) python(("Python")) -.-> python/PythonStandardLibraryGroup(["Python Standard Library"]) python(("Python")) -.-> python/DataStructuresGroup(["Data Structures"]) python/DataStructuresGroup -.-> python/lists("Lists") python/FunctionsGroup -.-> python/function_definition("Function Definition") python/FunctionsGroup -.-> python/arguments_return("Arguments and Return Values") python/FunctionsGroup -.-> python/lambda_functions("Lambda Functions") python/PythonStandardLibraryGroup -.-> python/data_collections("Data Collections") subgraph Lab Skills python/lists -.-> lab-415576{{"Comment utiliser les fonctions lambda pour les opérations simples sur les listes en Python"}} python/function_definition -.-> lab-415576{{"Comment utiliser les fonctions lambda pour les opérations simples sur les listes en Python"}} python/arguments_return -.-> lab-415576{{"Comment utiliser les fonctions lambda pour les opérations simples sur les listes en Python"}} python/lambda_functions -.-> lab-415576{{"Comment utiliser les fonctions lambda pour les opérations simples sur les listes en Python"}} python/data_collections -.-> lab-415576{{"Comment utiliser les fonctions lambda pour les opérations simples sur les listes en Python"}} end

Comprendre les fonctions lambda

Qu'est-ce qu'une fonction lambda?

Les fonctions lambda, également appelées fonctions anonymes, sont de petites fonctions sur une seule ligne en Python qui peuvent être définies sans nom. Elles sont généralement utilisées pour des opérations simples et de courte durée où une définition de fonction complète n'est pas nécessaire. Les fonctions lambda sont définies à l'aide du mot-clé lambda, suivi des paramètres d'entrée et d'un deux-points, puis de l'expression à évaluer.

La syntaxe générale d'une fonction lambda est la suivante :

lambda arguments: expression

Avantages des fonctions lambda

Les fonctions lambda offrent plusieurs avantages :

  1. Concision : Elles offrent un moyen concis de définir de petites fonctions simples sans avoir besoin d'une définition de fonction séparée.
  2. Utilisation en ligne : Les fonctions lambda peuvent être utilisées en ligne, en tant qu'arguments d'autres fonctions, rendant le code plus lisible et compact.
  3. Programmation fonctionnelle : Les fonctions lambda s'alignent bien avec le paradigme de programmation fonctionnelle, où les fonctions sont considérées comme des citoyens de première classe.

Quand utiliser les fonctions lambda

Les fonctions lambda sont particulièrement utiles dans les scénarios suivants :

  1. Tri et filtrage : Lorsque vous avez besoin de fournir des critères de tri ou de filtrage personnalisés à des fonctions telles que sorted(), filter() ou map().
  2. Fonctions de rappel : Lorsque vous avez besoin de passer une fonction simple en tant qu'argument à une autre fonction, par exemple dans la méthode apply() des DataFrames de Pandas.
  3. Opérations ponctuelles : Pour des opérations rapides et ponctuelles où une définition de fonction complète est excessive.

Explorons dans la section suivante comment appliquer les fonctions lambda aux opérations sur les listes.

Appliquer les fonctions lambda aux opérations sur les listes

Filtrer des listes avec des fonctions lambda

Vous pouvez utiliser des fonctions lambda avec la fonction filter() pour filtrer une liste selon une condition personnalisée. La fonction filter() prend une fonction lambda et un itérable (tel qu'une liste) en arguments, et renvoie un itérateur des éléments qui satisfont la condition.

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
even_numbers = list(filter(lambda x: x % 2 == 0, numbers))
print(even_numbers)  ## Sortie : [2, 4, 6, 8, 10]

Trier des listes avec des fonctions lambda

Vous pouvez utiliser des fonctions lambda avec la fonction sorted() pour trier une liste selon une clé personnalisée. La fonction sorted() prend un itérable (tel qu'une liste) et un paramètre optionnel key, qui peut être une fonction lambda.

names = ["Alice", "Bob", "Charlie", "David", "Eve"]
sorted_names = sorted(names, key=lambda x: len(x))
print(sorted_names)  ## Sortie : ['Bob', 'Eve', 'Alice', 'David', 'Charlie']

Transformer des listes avec des fonctions lambda

Vous pouvez utiliser des fonctions lambda avec la fonction map() pour appliquer une transformation à chaque élément d'une liste. La fonction map() prend une fonction lambda et un itérable (tel qu'une liste) en arguments, et renvoie un itérateur des éléments transformés.

numbers = [1, 2, 3, 4, 5]
squared_numbers = list(map(lambda x: x**2, numbers))
print(squared_numbers)  ## Sortie : [1, 4, 9, 16, 25]

Combiner des fonctions lambda avec d'autres opérations sur les listes

Les fonctions lambda peuvent être combinées avec d'autres opérations sur les listes, telles que les compréhensions de liste, pour créer des transformations plus complexes.

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
doubled_even_numbers = [x * 2 for x in filter(lambda x: x % 2 == 0, numbers)]
print(doubled_even_numbers)  ## Sortie : [4, 8, 12, 16, 20]

Dans la section suivante, nous explorerons quelques cas d'utilisation pratiques et des exemples d'utilisation de fonctions lambda pour les opérations sur les listes.

Cas d'utilisation pratiques et exemples

Trier une liste de dictionnaires

Supposons que vous ayez une liste de dictionnaires représentant des données d'employés, et que vous vouliez trier la liste selon l'âge de l'employé.

employees = [
    {"name": "Alice", "age": 30, "salary": 50000},
    {"name": "Bob", "age": 25, "salary": 45000},
    {"name": "Charlie", "age": 35, "salary": 55000},
    {"name": "David", "age": 28, "salary": 48000}
]

sorted_employees = sorted(employees, key=lambda x: x["age"])
print(sorted_employees)

Sortie :

[{'name': 'Bob', 'age': 25,'salary': 45000},
 {'name': 'David', 'age': 28,'salary': 48000},
 {'name': 'Alice', 'age': 30,'salary': 50000},
 {'name': 'Charlie', 'age': 35,'salary': 55000}]

Filtrer une liste de chaînes de caractères par longueur

Vous avez une liste de chaînes de caractères et vous voulez filtrer les chaînes qui sont plus longues qu'une certaine longueur.

words = ["apple", "banana", "cherry", "date", "elderberry", "fig"]
short_words = list(filter(lambda x: len(x) <= 5, words))
print(short_words)

Sortie :

['apple', 'banana', 'date', 'fig']

Transformer une liste de nombres

Vous avez une liste de nombres et vous voulez créer une nouvelle liste où chaque nombre est multiplié par 2.

numbers = [1, 2, 3, 4, 5]
doubled_numbers = list(map(lambda x: x * 2, numbers))
print(doubled_numbers)

Sortie :

[2, 4, 6, 8, 10]

Combiner des fonctions lambda avec les compréhensions de liste

Vous pouvez utiliser des fonctions lambda en combinaison avec les compréhensions de liste pour créer des transformations plus complexes.

numbers = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
doubled_even_numbers = [x * 2 for x in filter(lambda x: x % 2 == 0, numbers)]
print(doubled_even_numbers)

Sortie :

[4, 8, 12, 16, 20]

Ces exemples démontrent la polyvalence des fonctions lambda dans le traitement des listes et comment elles peuvent simplifier les opérations courantes sur les listes. En comprenant et en appliquant les fonctions lambda, vous pouvez écrire du code Python plus concis et expressif.

Récapitulatif

Dans ce tutoriel Python, vous avez appris à utiliser les fonctions lambda pour effectuer des opérations efficaces sur les listes. En comprenant la syntaxe et les applications pratiques des fonctions lambda, vous pouvez écrire du code Python plus concis et expressif, rendant vos tâches de programmation plus fluides et efficaces. Avec les exemples et les cas d'utilisation présentés, vous êtes désormais en mesure d'appliquer ces techniques dans vos propres projets Python.