Python

Python Lambda

Python Lambda

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 * x
print (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 + y
print (lk (10,20))

Näide 3: Allpool toodud lambda näide sisaldab mitmeid argumente.

p = lambda x, y, z: x + y + z
print (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.

arv = [0,1,2,3,4,5,6,7,8,9,10]
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).

Sid Meieri Civilization VI allalaadimine ja mängimine Linuxis
Sissejuhatus mängu Civilization 6 on kaasaegne kontseptsioon, mis tutvustati Age of Empires mängude sarjas. Idee oli üsna lihtne; alustaksite kõige põ...
Kuidas installida ja mängida Doomi Linuxis
Doomi sissejuhatus Doom-seeria sai alguse 90ndatel pärast algse Doomi väljaandmist. See oli kohene hitt ja sellest ajast alates on mänguseeria pälvinu...
Vulkan Linuxi kasutajatele
Iga uue põlvkonna graafikakaartidega näeme, et mängude arendajad ületavad graafilise truuduse piire ja jõuavad fotorealismile ühe sammu lähemale. Kuid...