1. A propos de la fonction lumbda
Dont le but de simplifier la syntaxe, Python nous donne la possibilité de ne pas déclarer une fonction de manière standard, c'est-à-dire en utilisant le mot-clé def. A cet effet ce type de fonctions est déclarée à l'aide du mot-clé lambda. Cependant, les fonctions Lambda peuvent accepter n'importe quel nombre d'arguments, mais elles ne peuvent renvoyer qu'une seule valeur sous la forme d'une expression.
2. Syntaxe de la fonction lumbda
La syntaxe pour définir une fonction lumbda est facile à comprendre à traverd un exemple:
Exemple: fonction x --> x + 5
1 2 3 4 5 6 |
# coding:-utf-8 # définir une fonction lumbda x --> x + 5 y = lambda x:x+5 # affichage du résultat print (y) print("somme = " , y(7)) # affiche: somme = 12 |
3. Appliquer un filtre à une liste ou un tuple à l'aide d'une fonction lumbda
La fonction lumbda peut aussi être utilisée pour appliquer un filtre à une liste, un tuple ou un dictionnaire...
Exemple filter les éléments pairs d'une miste de nombres
1 2 3 4 5 6 7 8 |
# coding:-utf-8 # définir une liste L = [13 , 16 , 22 , 31 , 17 , 46] # filtrer les élément pair uniqueme,t list_even = list(filter(lambda x:(x%2 == 0) , L)) print(list_even) # affiche [16, 22, 46] |
Exemple filtrer les personnes majeurs dans un dictionnaire
1 2 3 4 5 6 7 8 |
# coding:-utf-8 # définir un dictionnaire des personnes avec leurs âges d = {'Ahmed' : 15 , 'Robert' : 18 , 'Nathalie': 19 , 'Cecilia' : 13 , 'David' : 14 } # filtrer les personnes majeurs person_major = list(filter(lambda x:(d[x] >= 18) , d)) print(person_major) # affiche ['Robert', 'Nathalie'] |
4. Tansformer une liste ou un tuple avec la fonction lambda et la fonction map()
La fonction map() en Python accepte une fonction et une liste. Il donne une nouvelle liste qui contient tous les éléments modifiés renvoyés par la fonction pour chaque élément.
Exemple liste des carrées d'une liste de nombre avec les fonctions lumbda et map().
1 2 3 4 5 6 |
#programme qui renvoie la liste des carrées des éléments d'une liste L = [11 , 3 , 7 , 2 , 5 , 9] liste_carrees = list(map(lambda x:x**2 , L)) # afficher la liste des carrées print(liste_carrees) # affiche [121, 9, 49, 4, 25, 81] |
5. Quiz
a) Une fonction prédéfinie intégrée dans Python.
b) Une fonction anonyme définie en utilisant le mot-clé lambda.
c) Une fonction qui prend un argument de type lambda.
a) function = lambda parameters: expression
b) def function(parameters): expression
c) lambda function(parameters): expression
a) À définir des fonctions complexes avec plusieurs paramètres.
b) À créer des fonctions simples et ponctuelles sans nom.
c) À effectuer des opérations mathématiques complexes.
a) Oui, car les fonctions lambda sont récursives par défaut.
b) Non, car les fonctions lambda ne peuvent pas appeler d'autres fonctions.
c) Oui, mais cela nécessite une syntaxe spéciale.
a) Les fonctions lambda peuvent avoir un nombre illimité de paramètres.
b) Les fonctions définies avec def peuvent être utilisées comme des fonctions autonomes, tandis que les fonctions lambda sont généralement utilisées pour des opérations simples et ponctuelles.
c) Les fonctions lambda sont plus efficaces en termes de vitesse d'exécution.
a) 3
b) 6
c) lambda x: x * 2
a) sorted(liste_de_tuples, key=lambda x: x[0])
b) sorted(liste_de_tuples, key=lambda x: x[1])
c) sort(liste_de_tuples, key=lambda x: x[1])
a) Elles ne peuvent pas prendre plus d'un paramètre.
b) Elles ne peuvent pas être utilisées avec des fonctions de la bibliothèque standard.
c) Elles ne peuvent pas être stockées dans des variables.
a) À trier une liste.
b) À appliquer une fonction lambda à chaque élément d'une séquence et renvoyer un nouvel itérable.
c) À concaténer des chaînes de caractères.
a) function_name(parameters)
b) lambda(parameters)
c) (lambda parameters: expression)(arguments)
- Réponse 1 : b) Une fonction anonyme définie en utilisant le mot-clé lambda.
- Réponse 2 : a) function = lambda parameters: expression
- Réponse 3 : b) À créer des fonctions simples et ponctuelles sans nom.
- Réponse 4 : b) Non, car les fonctions lambda ne peuvent pas appeler d'autres fonctions.
- Réponse 5 : b) Les fonctions définies avec def peuvent être utilisées comme des fonctions autonomes, tandis que les fonctions lambda sont généralement utilisées pour des opérations simples et ponctuelles sans nom.
- Réponse 6 : b) 6
- Réponse 7 : b) sorted(liste_de_tuples, key=lambda x: x[1])
- Réponse 8 : a) Elles ne peuvent pas prendre plus d'un paramètre.
- Réponse 9 : b) À appliquer une fonction lambda à chaque élément d'une séquence et renvoyer un nouvel itérable.
- Réponse 10: c) (lambda parameters: expression)(arguments)
Younes Derfoufi
CRMEF OUJDA