⊗pyPmFnLa 16 of 129 menu

Lambda funkcija Python'e

Tarkime, kad turime funkciją func, kuri parametrais priima sąrašą ir atgalinio ryšio funkciją (callback). Funkcija sukurs naują sąrašą iš pradinio sąrašo elementų. Be to, kiekvienam elementui bus pritaikyta atgalinio ryšio funkcija:

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

Dabar sukurkime funkciją square, kuri paduos jai perduotą skaičių kvadratu:

def square(num): return num ** 2

Perduokime į func parametrus skaičių sąrašą ir funkciją square kaip atgalinio ryšio funkciją:

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

Į konsolę bus išvestas naujas sąrašas, sudarytas iš skaičių kvadratų:

[1, 4, 9]

Tačiau šį kodą galima žymiai sutrumpinti, naudojant lambda funkciją - anoniminę funkciją, kuri iškviečiama su raktažodžio lambda pagalba ir užrašoma vienoje eilutėje. Todėl į lambda funkciją galima perrašyti tik tas funkcijas, kurių kodas užima vieną eilutę.

Lambda funkcijos sintaksė atrodo taip:

lambda funkcijos parametras: operacija su parametru

Perrašykime funkciją square lambda funkcijos pagalba ir perduokime ją į func parametrą:

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

Lambda funkciją galima įrašyti į kintamąjį:

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

Perrašykite šį kodą naudodami lambda funkciją:

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

Perrašykite šį kodą naudodami lambda funkciją:

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) )

Perrašykite šį kodą naudodami lambda funkciją:

def func(num1, num2, clb): res = clb(num1) + num2 return res def clb(num): return num ** 3 print(func(2, 6, clb))
Lietuvių
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Mes naudojame slapukus svetainės veikimui, analizei ir personalizavimui. Duomenų apdorojimas vyksta pagal Privatumo politiką.
priimti visus nustatyti atšaukti