Fonctions Python Lambda sont des fonctions anonymes signifie que la fonction est sans nom. Comme nous le savons déjà, déf Le mot-clé est utilisé pour définir une fonction normale en Python. De même, le lambda Le mot-clé est utilisé pour définir une fonction anonyme dans Python .
Syntaxe de la fonction Python Lambda
Syntaxe: arguments lambda : expression
- Cette fonction peut avoir n'importe quel nombre d'arguments mais une seule expression, qui est évaluée et renvoyée.
- On est libre d’utiliser les fonctions lambda partout où des objets fonction sont requis.
- Vous devez garder à l’esprit que les fonctions lambda sont syntaxiquement limitées à une seule expression.
- Il a diverses utilisations dans des domaines particuliers de la programmation, outre d’autres types d’expressions dans les fonctions.
Exemple de fonction Python Lambda
Dans l'exemple, nous avons défini une fonction lambda ( supérieur ) pour convertir une chaîne en majuscules en utilisant supérieur() .
Ce code définit une fonction lambda nommée upper> qui prend une chaîne comme argument et la convertit en majuscule à l'aide du upper()> méthode. Il applique ensuite cette fonction lambda à la chaîne « techcodeview.com » et imprime le résultat
Python3
str1>=> 'techcodeview.com'> upper>=> lambda> string: string.upper()> print>(upper(str1))> |
>
>
Sortir:
GEEKSFORGEEKS>
Utilisation de la fonction Lambda en Python
Voyons quelques-unes des utilisations pratiques de la fonction Python lambda.
Vérification de condition à l'aide de la fonction Python lambda
Ici le 'format_numérique' appelle la fonction lambda et le num est passé en paramètre pour effectuer des opérations.
Python3
format_numeric>=> lambda> num: f>'{num:e}'> if> isinstance>(num,>int>)>else> f>'{num:,.2f}'> print>(>'Int formatting:'>, format_numeric(>1000000>))> print>(>'float formatting:'>, format_numeric(>999999.789541235>))> |
>
>
Sortir:
Int formatting: 1.000000e+06 float formatting: 999,999.79>
Différence entre les fonctions Lambda et la fonction définie par déf
Le code définit une fonction cube en utilisant à la fois le ' def'> mot-clé et une fonction lambda. Il calcule le cube d'un nombre donné (5 dans ce cas) en utilisant les deux approches et imprime les résultats. La sortie est de 125 pour les deux ' def'> et les fonctions lambda, démontrant qu'elles réalisent le même calcul de cube.
Python3
def> cube(y):> >return> y>*>y>*>y> lambda_cube>=> lambda> y: y>*>y>*>y> print>(>'Using function defined with `def` keyword, cube:'>, cube(>5>))> print>(>'Using lambda function, cube:'>, lambda_cube(>5>))> |
>
>
Sortir:
Using function defined with `def` keyword, cube: 125 Using lambda function, cube: 125>
Comme nous pouvons le voir dans l'exemple ci-dessus, à la fois le cube() fonction et lambda_cube() la fonction se comporte de la même manière et comme prévu. Analysons un peu plus l'exemple ci-dessus :
| Avec fonction lambda | Sans fonction lambda |
|---|---|
| Prend parfois en charge les instructions sur une seule ligne qui renvoient une certaine valeur. | Prend en charge n'importe quel nombre de lignes à l'intérieur d'un bloc fonctionnel |
| Idéal pour effectuer de courtes opérations/manipulations de données. | Idéal pour tous les cas nécessitant plusieurs lignes de code. |
| L'utilisation de la fonction lambda peut parfois réduire la lisibilité du code. | Nous pouvons utiliser des commentaires et des descriptions de fonctions pour une lisibilité facile. |
Utilisations pratiques de la fonction Python lambda
Fonction Python Lambda avec compréhension de liste
À chaque itération à l'intérieur du compréhension de liste , nous créons une nouvelle fonction lambda avec un argument par défaut de x (où x est l'élément actuel dans l'itération). Plus tard, dans la boucle for, nous appelons le même objet fonction ayant l'argument par défaut en utilisant article() et obtenez la valeur souhaitée. Ainsi, is_even_list stocke la liste des objets de fonction lambda.
Python3
is_even_list>=> [>lambda> arg>=>x: arg>*> 10> for> x>in> range>(>1>,>5>)]> for> item>in> is_even_list:> >print>(item())> |
>
>
Sortir:
10 20 30 40>
Fonction Python Lambda avec if-else
Nous utilisons ici le Max. fonction lambda pour trouver le maximum de deux entiers.
Python3
Max> => lambda> a, b : a>if>(a>b)>else> b> print>(>Max>(>1>,>2>))> |
>
>
Sortir:
2>
Python Lambda avec plusieurs instructions
Les fonctions Lambda n'autorisent pas plusieurs instructions, cependant, nous pouvons créer deux fonctions lambda, puis appeler l'autre fonction lambda en tant que paramètre de la première fonction. Essayons de trouver le deuxième élément maximum en utilisant lambda.
Le code définit une liste de sous-listes appelées ' List'> . Il utilise des fonctions lambda pour trier chaque sous-liste et trouver le deuxième plus grand élément de chaque sous-liste. Le résultat est une liste des éléments du deuxième plus grand, qui est ensuite imprimée. La sortie affiche le deuxième plus grand élément de chaque sous-liste de la liste d'origine.
Python3
List> => [[>2>,>3>,>4>],[>1>,>4>,>16>,>64>],[>3>,>6>,>9>,>12>]]> sortList>=> lambda> x: (>sorted>(i)>for> i>in> x)> secondLargest>=> lambda> x, f : [y[>len>(y)>->2>]>for> y>in> f(x)]> res>=> secondLargest(>List>, sortList)> print>(res)> |
>
>
Sortir:
[3, 16, 9]>
Les fonctions Lambda peuvent être utilisées avec des fonctions intégrées telles que filtre() , carte() et réduire() .
Utilisation de la fonction lambda() avec filter()
La fonction filter() en Python prend une fonction et une liste comme arguments. Cela offre un moyen élégant de filtrer tous les éléments d'une séquence, pour lesquels la fonction renvoie True. Voici un petit programme qui renvoie les nombres impairs d'une liste d'entrée :
Filtrez tous les nombres impairs à l'aide de filter() et de la fonction lambda
Ici, lambda x : (x % 2 != 0) renvoie True ou False si x n'est pas pair. Puisque filter() ne conserve que les éléments là où il produit Vrai , il supprime ainsi tous les nombres impairs qui ont généré FAUX .
Python3
li>=> [>5>,>7>,>22>,>97>,>54>,>62>,>77>,>23>,>73>,>61>]> final_list>=> list>(>filter>(>lambda> x: (x>%> 2> !>=> 0>), li))> print>(final_list)> |
>
>
Sortir:
[5, 7, 97, 77, 23, 73, 61]>
Filtrez toutes les personnes âgées de plus de 18 ans, à l'aide des fonctions lambda et filter()
Le code filtre une liste d'âges et extrait les âges des adultes (âgés supérieurs à 18 ans) à l'aide d'une fonction lambda et du ' filter'> fonction. Il imprime ensuite la liste des âges adultes. La sortie affiche l’âge des personnes âgées de 18 ans ou plus.
Python3
ages>=> [>13>,>90>,>17>,>59>,>21>,>60>,>5>]> adults>=> list>(>filter>(>lambda> age: age>>18>, ages))> print>(adults)> |
inurl :.git/head
>
>
Sortir:
[90, 59, 21, 60]>
Utilisation de la fonction lambda() avec map()
La fonction map() en Python prend une fonction et une liste comme argument. La fonction est appelée avec une fonction lambda et une liste et une nouvelle liste est renvoyée qui contient tous les éléments modifiés par lambda renvoyés par cette fonction pour chaque élément. Exemple:
Multipliez tous les éléments d'une liste par 2 à l'aide des fonctions lambda et map()
Le code double chaque élément d'une liste à l'aide d'une fonction lambda et du ' map'> fonction. Il imprime ensuite la nouvelle liste avec les éléments doublés. La sortie affiche chaque élément de la liste d'origine, multiplié par 2.
Python3
li>=> [>5>,>7>,>22>,>97>,>54>,>62>,>77>,>23>,>73>,>61>]> final_list>=> list>(>map>(>lambda> x: x>*>2>, li))> print>(final_list)> |
>
>
Sortir:
[10, 14, 44, 194, 108, 124, 154, 46, 146, 122]>
Transformez tous les éléments d'une liste en majuscules à l'aide des fonctions lambda et map()
Le code convertit une liste de noms d'animaux en majuscules à l'aide d'une fonction lambda et du ' map'> fonction. Il imprime ensuite la liste avec les noms d'animaux en majuscules. La sortie affiche les noms des animaux en lettres majuscules.
Python3
animals>=> [>'dog'>,>'cat'>,>'parrot'>,>'rabbit'>]> uppered_animals>=> list>(>map>(>lambda> animal: animal.upper(), animals))> print>(uppered_animals)> |
>
>
Sortir:
['DOG', 'CAT', 'PARROT', 'RABBIT']>
Utilisation de la fonction lambda() avec réduire()
Le réduire() La fonction en Python prend une fonction et une liste comme argument. La fonction est appelée avec une fonction lambda et un itérable et un nouveau résultat réduit sont renvoyés. Cela effectue une opération répétitive sur les paires d'itérables. La fonction réduire() appartient à la outils fonctionnels module.
Une somme de tous les éléments d'une liste utilisant la fonction lambda et réduire()
Le code calcule la somme des éléments d'une liste à l'aide de la ' reduce'> fonction à partir du ' functools'> module. Il importe ' reduce'> , définit une liste, applique une fonction lambda qui ajoute deux éléments à la fois et imprime la somme de tous les éléments de la liste. La sortie affiche la somme calculée.
Python3
from> functools>import> reduce> li>=> [>5>,>8>,>10>,>20>,>50>,>100>]> sum> => reduce>((>lambda> x, y: x>+> y), li)> print>(>sum>)> |
>
>
Sortir:
193>
Ici, les résultats des deux éléments précédents sont ajoutés à l'élément suivant et cela continue jusqu'à la fin de la liste comme (((((5+8)+10)+20)+50)+100).
Trouver le maximum d'éléments dans une liste à l'aide de la fonction lambda et réduire()
Le code utilise le ' functools'> module pour trouver le maximum d’éléments dans une liste ( ' lis'> ) en employant le ' reduce'> fonction et une fonction lambda. Il imprime ensuite l'élément maximum, qui est 6 dans ce cas.
Python3
import> functools> lis>=> [>1>,>3>,>5>,>6>,>2>, ]> print>(>'The maximum element of the list is : '>, end>=>'')> print>(functools.>reduce>(>lambda> a, b: a>if> a>b>else> b, lis))> |
>
>
Sortir:
The maximum element of the list is : 6>