⊗pyPmFnLa 16 of 129 menu

Lambda funkcija v Pythonu

Recimo, da imamo funkcijo func, ki kot parametre sprejme seznam in povratni klic. Funkcija bo ustvarila nov seznam iz elementov izvirnega seznama. Pri tem bo na vsakega od elementov uporabljen povratni klic:

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

Zdaj ustvarimo funkcijo square, ki bo število, ki ji je posredovano, dvignila na kvadrat:

def square(num): return num ** 2

Posredujmo v parametre func številski seznam in funkcijo square kot povratni klic:

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

V konzolo se bo izpisal nov seznam, sestavljen iz kvadratov števil:

[1, 4, 9]

Vendar pa lahko to kodo precej skrajšamo z uporabo lambda funkcije - anonimne funkcije, ki se kliče z uporabo ključne besede lambda in je zapisana v eni vrstici. Zato v lambda funkcijo lahko prepišemo le funkcije, katerih koda zaseda eno vrstico.

Sintaksa lambda funkcije izgleda takole:

lambda parameter funkcije: operacija s parametrom funkcije

Prepišimo funkcijo square z uporabo lambda funkcije in jo posredujmo v parameter func:

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

Lambda funkcijo lahko zapišemo v spremenljivko:

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

Prepišite naslednjo kodo z lambda funkcijo:

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

Prepišite naslednjo kodo z lambda funkcijo:

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

Prepišite naslednjo kodo z lambda funkcijo:

def func(num1, num2, clb): res = clb(num1) + num2 return res def clb(num): return num ** 3 print(func(2, 6, clb))
Slovenščina
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiSuomiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Za delovanje spletnega mesta, analitiko in personalizacijo uporabljamo piškotke. Obdelava podatkov poteka v skladu s Politiko zasebnosti.
sprejmi vse nastavi zavrni