⊗pyPmFnLa 16 of 129 menu

Ламбда функција у Пајтону

Нека имамо функцију func, која параметрима прима списак и callback. Функција ће креирати нови списак од елемената изворног списка. При томе ће се на сваки од елемената применити callback:

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

Сада ћемо креирати функцију square, која ће дизати прослеђени јој број на квадрат:

def square(num): return num ** 2

Дајте да проследимо у параметре func нумерички списак и функцију square у капацитету callback-а:

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

У конзолу ће се исписати нови списак, састављен од квадрата бројева:

[1, 4, 9]

Међутим овај кôд можемо значајно скратити, користећи ламбда функцију - анонимну функцију, која се позива са помоћу кључне речи lambda и записује се у једној линији. Зато се у ламбда функцију може преписати само функција, чији кôд заузима једну линију.

Синтакса ламбда функције изгледа овако:

lambda параметар функције: операција са параметром функције

Дајте да преписемо функцију square са помоћу ламбда функције и проследимо је у параметар func:

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

Ламбда функцију може се записати у променљиву:

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

Препишите следећи кôд преко ламбда функције:

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

Препишите следећи кôд преко ламбда функције:

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

Препишите следећи кôд преко ламбда функције:

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