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 7 8 |
# 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 9 10 |
# 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 9 10 |
# 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 7 8 |
#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] |
Younes Derfoufi
CRMEF OUJDA