⊗pyPmFnLa 16 of 129 menu

Fonction lambda en Python

Supposons que nous ayons une fonction func, qui prend en paramètres une liste et un callback. La fonction va créer une nouvelle liste à partir des éléments de la liste d'origine. Pour ce faire, le callback sera appliqué à chacun des éléments :

def func(lst, callback): res = [] for el in lst: res.append(callback(el)) return res

Maintenant, créons une fonction square, qui mettra au carré le nombre qui lui est transmis :

def square(num): return num ** 2

Passons en paramètres à func une liste de nombres et la fonction square en tant que callback :

print( func([1, 2, 3], square) )

La nouvelle liste, composée des carrés des nombres, sera affichée dans la console :

[1, 4, 9]

Cependant, ce code peut être considérablement raccourci en utilisant une fonction lambda - une fonction anonyme, qui est appelée avec le mot-clé lambda et écrite sur une seule ligne. C'est pourquoi seules les fonctions dont le code tient sur une ligne peuvent être réécrites en fonction lambda.

La syntaxe d'une fonction lambda se présente comme suit :

lambda paramètre de la fonction: opération avec le paramètre de la fonction

Réécrivons la fonction square en fonction lambda et passons-la en paramètre à func :

print( func([1, 2, 3], lambda num: num ** 2) )

La fonction lambda peut être assignée à une variable :

square = lambda num: num ** 2 print( func([1, 2, 3], square) )

Réécrivez le code suivant en utilisant une fonction lambda :

def func(num, clb): return clb(num) def clb(num): return num + 1 print( func(2, clb) )

Réécrivez le code suivant en utilisant une fonction lambda :

def func(num, clb1, clb2): return (clb1(num), clb2(num)) def clb1(num): return num + 1 def clb2(num): return num - 1 print( func(2, clb1, clb2) )

Réécrivez le code suivant en utilisant une fonction lambda :

def func(num1, num2, clb): res = clb(num1) + num2 return res def clb(num): return num ** 3 print(func(2, 6, clb))
Français
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Nous utilisons des cookies pour le fonctionnement du site, l'analyse et la personnalisation. Le traitement des données est effectué conformément à la Politique de confidentialité.
accepter tout personnaliser refuser