Šiame straipsnyje bandysime sužinoti apie „Python Lambda“.
Apibrėžimas
Lambda yra funkcija, apibrėžta be pavadinimo. Tam gali prireikti kelių argumentų, tačiau leidžiama tik viena išraiška, kuri yra įvertinta ir grąžinama. Ten, kur reikalingi funkcijos objektai, galime naudoti lambda funkciją.
Sintaksė:
lambda argumentai: išraiška
1 pavyzdys: Žemiau pateikta funkcija naudojama skaičiuoti kubą.
def kubas (a):grąžinti a * a * a
spausdinti (kubas (3))
Pirmiau pateiktą funkciją galima parašyti naudojant lambda, kaip parodyta žemiau:
p = lambda x: x * x * xspausdinti (p (3))
2 pavyzdys: Žemiau pateikta funkcija naudojama dviejų skaičių sumai apskaičiuoti.
def suma_2 (x, y):grąžinti x + y
spausdinti (suma_2 (10,20))
Pirmiau pateiktą funkciją galima parašyti naudojant lambda, kaip parodyta žemiau:
p = lambda x, y: x + yspausdinti (p (10,20))
3 pavyzdys: Žemiau pateiktame lambda pavyzdyje pateikiami keli argumentai.
p = lambda x, y, z: x + y + zspausdinti (p (10, 5, 3))
4 pavyzdys: Ši funkcija padaugina skaičių iš 2 ir gali būti parašyta naudojant „Lambda“ funkciją taip:
def func (n):grįžkite lambda x: x * n
dauginti_by_2 = func (2)
spausdinti (padauginti_kartu_2 (11))
spausdinti (padauginti_kartu_2 (15))
5 pavyzdys: Funkcija ima funkciją kaip argumentą ir grąžina rezultatą.
function_argument = lambda p, f: p + f (p)spausdinti (function_argument (5, lambda p: p * p))
spausdinti (function_argument (10, lambda x: x - 3))
spausdinti (function_argument (10, lambda x: x + 5))
spausdinti (function_argument (10, lambda x: x / 5))
6 pavyzdys: Žemiau pateiktame pavyzdyje reikšmėms rūšiuoti naudojama lambda.
# (vardas, pavardė, amžius)duomenys = [("Sachin", "Tendulkar", "42"), ("Rahul", "Dravid", "44"), ("Virendra", "Sehwag", "40")]
duomenis.rūšiuoti (raktas = lambda x: x [0]) # rūšiuoti pagal pavadinimą
spausdinti (duomenys)
duomenys = [("Sachin", "Tendulkar", "42"), ("Rahul", "Dravid", "44"), ("Virendra", "Sehwag", "40")]
duomenis.rūšiuoti (raktas = lambda x: x [1]) # rūšiuoti pagal pavardę
spausdinti (duomenys)
duomenys = [("Sachin", "Tendulkar", "42"), ("Rahul", "Dravid", "44"), ("Virendra", "Sehwag", "40")]
duomenis.rūšiuoti (raktas = lambda x: x [2]) # rūšiuoti pagal amžių
spausdinti (duomenys)
Dabar eikite į python3 vertėją.
Lambda funkcija naudojama daugelyje integruotų metodų. Toliau pateikiami keli pavyzdžiai:
1. Žemėlapis
Ši funkcija atvaizduoja kiekvieną elementą iš eilės naudodama lambda funkciją.
Sintaksė:
žemėlapis (funkcija, seka)
Pvz .:
nums = [1,2,3,4,5,6]
Čia padauginsime kiekvieną sąrašo elementą iš 2.
mul_2 = žemėlapis (lambda x: x * 2, skaičiai)
spausdinti (sąrašas (mul_2)) # Grąžina žemėlapio objektą ir rašo jį kaip sąrašą.
Pagal pirmiau pateiktą funkciją kiekvienas sąrašo elementas perduodamas lambda funkcijai, o lambda funkcija ją padaugins iš 2.
nums = [1,2,3,4,5,6]mul_2 = žemėlapis (lambda x: x * 2, skaičiai)
spausdinti (sąrašas (mul_2))
2. Filtras
Ši funkcija filtruoja visus sąrašo elementus, kuriems „lambda“ funkcija grąžina „True“.
Sintaksė:
filtras (funkcija, seka)
Pvz .:
nums = [0,1,2,3,4,5,6,7,8,9,10]
nelyginiai_sumai = filtras (lambda x: x% 2, nums)
spausdinti (sąrašas (nelyginiai_skaitos)) # Grąžina žemėlapio objektą ir rašo jį kaip sąrašą.
nelyginiai_sumai = filtras (lambda x: x% 2, nums)
spausdinti (sąrašas (nelyginiai_skaitos))
3. Sumažinti
Ši funkcija grąžina vieną reikšmę, taikant seką funkcija func ().
Sintaksė:
sumažinti (func, sek.)
Pvz .:
nums = [0,1,2,3,4,5,6,7,8,9,10]
reikšmė = sumažinti (lambda x, y: x + y, nums)
spausdinti (vertė)
Pirmiau pateiktame sąraše jis atliks pirmuosius 2 elementus ir atliks papildymą. Papildymo rezultatas bus pridėtas prie trečiojo elemento ir pan. Galiausiai ji grąžins vieną vertę.
Pastaba: šio metodo negalima naudoti python3 + versijoje.
nums = [0,1,2,3,4,5,6,7,8,9,10]reikšmė = sumažinti (lambda x, y: x + y, nums)
spausdinti (vertė)
Išvada
Iš šio straipsnio sužinojome daugybę lambda funkcijos aspektų. Priklausomai nuo to, ko reikia programai, galime ją naudoti ir pagerinti pitono kodavimą. Tai dažniausiai naudojama argumentams perduoti kitai funkcijai (pavyzdžiui, aukščiau išvardintose funkcijose matėme žemėlapius, filtrus ir redukcijas).