Selles artiklis püüame õppida Python Lambda kohta.
Definitsioon
Lambda on ilma nimeta määratletud funktsioon. Selleks võib kuluda mitu argumenti, kuid lubatud on ainult üks avaldis, mida hinnatakse ja tagastatakse. Seal, kus on vaja funktsiooni objekte, saame kasutada funktsiooni lambda.
Süntaks:
lambda argumendid: avaldis
Näide 1: Allpool toodud funktsiooni kasutatakse arvu kuubi arvutamiseks.
def kuup (a):tagastage a * a * a
print (kuup (3))
Ülaltoodud funktsiooni saab kirjutada lambda abil, nagu allpool näidatud:
p = lambda x: x * x * xprint (p (3))
Näide 2: Allpool toodud funktsiooni kasutatakse kahe numbri summa arvutamiseks.
def summa_2 (x, y):tagastage x + y
print (summa_2 (10,20))
Ülaltoodud funktsiooni saab kirjutada lambda abil, nagu allpool näidatud:
p = lambda x, y: x + yprint (lk (10,20))
Näide 3: Allpool toodud lambda näide sisaldab mitmeid argumente.
p = lambda x, y, z: x + y + zprint (lk (10, 5, 3))
Näide 4: See funktsioon korrutab arvu kahega ja selle saab kirjutada Lambda funktsiooni abil järgmiselt:
def func (n):tagastage lambda x: x * n
korrutama_mõistama_2 = func (2)
print (korrutama_kordaja_2 (11))
print (korrutama_kordaja_2 (15))
Näide 5: Funktsioon võtab funktsiooni argumendina ja tagastab tulemuse.
function_argument = lambda p, f: p + f (p)print (function_argument (5, lambda p: p * p))
print (function_argument (10, lambda x: x - 3))
print (function_argument (10, lambda x: x + 5))
print (function_argument (10, lambda x: x / 5))
Näide 6: Allpool toodud näites kasutatakse väärtuste sortimiseks lambdat.
# (nimi, perekonnanimi, vanus)andmed = [("Sachin", "Tendulkar", "42"), ("Rahul", "Dravid", "44"), ("Virendra", "Sehwag", "40")]
andmed.sortimine (võti = lambda x: x [0]) # sortimine nime järgi
print (andmed)
andmed = [("Sachin", "Tendulkar", "42"), ("Rahul", "Dravid", "44"), ("Virendra", "Sehwag", "40")]
andmed.sort (võti = lambda x: x [1]) # sortimine perekonnanime järgi
print (andmed)
andmed = [("Sachin", "Tendulkar", "42"), ("Rahul", "Dravid", "44"), ("Virendra", "Sehwag", "40")]
andmed.sortimine (võti = lambda x: x [2]) # sortimine vanuse järgi
print (andmed)
Nüüd minge python3 tõlki.
Lambda funktsiooni kasutatakse paljudes sisseehitatud meetodites. Järgnevalt on toodud mõned näited:
1. Kaart
See funktsioon kaardistab iga elemendi järjestuse abil, kasutades lambda funktsiooni.
Süntaks:
kaart (funktsioon, järgnev)
Nt:
arv = [1,2,3,4,5,6]
Korrutame siin loendi iga elemendi 2-ga.
mul_2 = kaart (lambda x: x * 2, arv)
print (list (mul_2)) # See tagastab kaardiobjekti ja sisestab selle loendina.
Ülaltoodud funktsioonis edastatakse iga loendi element lambda funktsioonile ja lambda funktsioon korrutab selle 2-ga.
arv = [1,2,3,4,5,6]mul_2 = kaart (lambda x: x * 2, arv)
print (loend (mul_2))
2. Filtreeri
See funktsioon filtreerib välja kõik loendi elemendid, mille puhul lambda funktsioon tagastab True.
Süntaks:
filter (funktsioon, järgnev)
Nt:
arv = [0,1,2,3,4,5,6,7,8,9,10]
paaritu_arv = filter (lambda x: x% 2, arv)
print (list (paaritu_numbrid)) # See tagastab kaardiobjekti ja sisestab selle loendina.
paaritu_arv = filter (lambda x: x% 2, arv)
print (loend (paaritu_numbrid))
3. Vähenda
See funktsioon tagastab ühe väärtuse, rakendades järgule funktsiooni func ().
Süntaks:
vähendada (func, seq)
Nt:
arv = [0,1,2,3,4,5,6,7,8,9,10]
väärtus = vähendama (lambda x, y: x + y, arv)
print (väärtus)
Ülaltoodud loendis võtab see kaks esimest elementi ja täidab täienduse. Lisamise tulemus lisatakse kolmandale elemendile ja nii edasi. Lõpuks tagastab see ühe väärtuse.
Märkus. See meetod pole Python3 + versioonis saadaval.
arv = [0,1,2,3,4,5,6,7,8,9,10]väärtus = vähendama (lambda x, y: x + y, arv)
print (väärtus)
Järeldus
Sellest artiklist oleme õppinud mitmeid lambda funktsiooni aspekte. Sõltuvalt sellest, mida programm vajab, saame seda kasutada ja paremini pythoni kodeerida. Seda kasutatakse kõige sagedamini argumentide edastamiseks teisele funktsioonile (näiteks oleme näinud, et ülaltoodud funktsioonid kaardistavad, filtreerivad ja vähendavad).