⊗pyPmFnLa 16 of 129 menu

Lambda-funktio Pythonissa

Oletetaan, että meillä on funktio func, joka parametreinaan ottaa listan ja takaisinkutsun. Funktio luo uuden listan alkuperäisen listan elementeistä. Samalla jokaiseen elementtiin sovelletaan takaisinkutsua:

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

Luodaan nyt funktio square, joka korottaa sille annetun luvun toiseen potenssiin:

def square(num): return num ** 2

Annetaan parametreina func:lle numeralista ja funktio square takaisinkutsuna:

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

Konsoliin tulostuu uusi lista, joka koostuu lukujen neliöistä:

[1, 4, 9]

Kuitenkin tätä koodia voidaan huomattavasti lyhentää käyttämällä lambda-funktiota - nimetöntä funktiota, jota kutsutaan avainsanalla lambda ja kirjoitetaan yhdelle riville. Siksi lambda-funktioksi voidaan kirjoittaa vain funktiot, joiden koodi mahtuu yhdelle riville.

Lambda-funktion syntaksi näyttää tältä:

lambda funktion parametri: operaatio parametrilla

Kirjoitetaan funktio square uudelleen lambda-funktion avulla ja annetaan se parametrina func:lle:

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

Lambda-funktion voi tallentaa muuttujaan:

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

Kirjoita seuraava koodi uudelleen lambda-funktion avulla:

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

Kirjoita seuraava koodi uudelleen lambda-funktion avulla:

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

Kirjoita seuraava koodi uudelleen lambda-funktion avulla:

def func(num1, num2, clb): res = clb(num1) + num2 return res def clb(num): return num ** 3 print(func(2, 6, clb))
Suomi
AfrikaansAzərbaycanБългарскиবাংলাБеларускаяČeštinaDanskDeutschΕλληνικάEnglishEspañolEestiFrançaisहिन्दीMagyarՀայերենIndonesiaItaliano日本語ქართულიҚазақ한국어КыргызчаLietuviųLatviešuМакедонскиMelayuမြန်မာNederlandsNorskPolskiPortuguêsRomânăРусскийසිංහලSlovenčinaSlovenščinaShqipСрпскиSrpskiSvenskaKiswahiliТоҷикӣไทยTürkmenTürkçeЎзбекOʻzbekTiếng Việt
Käytämme evästeitä verkkosivuston toiminnalle, analytiikalle ja personoinnille. Tietojen käsittely tapahtuu Tietosuojakäytännön mukaisesti.
hyväksy kaikki mukauta hylkää