Python

Python Lambda

Python Lambda

Tässä artikkelissa yritämme oppia Python Lambdasta.

Määritelmä

Lambda on funktio, joka on määritelty ilman nimeä. Tämä voi viedä useita argumentteja, mutta vain yksi lauseke on sallittu, joka arvioidaan ja palautetaan. Missä funktio-objekteja vaaditaan, voimme käyttää lambda-funktiota.

Syntaksi:
lambda-argumentit: lauseke

Esimerkki 1: Alla olevaa funktiota käytetään luvun kuution laskemiseen.

def-kuutio (a):
palauta a * a * a
tulosta (kuutio (3))

Yllä oleva funktio voidaan kirjoittaa lambdalla, kuten alla on esitetty:

p = lambda x: x * x * x
tulosta (p (3))

Esimerkki 2: Alla olevaa funktiota käytetään laskemaan kahden luvun summa.

def summa_2 (x, y):
palauta x + y
tulosta (summa_2 (10,20))

Yllä oleva toiminto voidaan kirjoittaa lambdalla, kuten alla on esitetty:

p = lambda x, y: x + y
tulosta (s (10,20))

Esimerkki 3: Alla olevassa lambda-esimerkissä on useita argumentteja.

p = lambda x, y, z: x + y + z
tulosta (p (10, 5, 3))

Esimerkki 4: Tämä toiminto kertoo luvun kahdella ja voidaan kirjoittaa Lambda-funktiolla seuraavasti:

def funktio (n):
palaa lambda x: x * n
multiply_by_2 = func (2)
tulosta (kerro_määrä_2 (11))
tulosta (moninkertaistaa_määrä_2 (15))

Esimerkki 5: Funktio ottaa funktion argumenttina ja palauttaa tuloksen.

function_argument = lambda p, f: p + f (p)
tulosta (function_argument (5, lambda p: p * p))
tulosta (funktio_argumentti (10, lambda x: x - 3))
tulosta (funktio_argumentti (10, lambda x: x + 5))
tulosta (funktio_argumentti (10, lambda x: x / 5))

Esimerkki 6: Alla olevassa esimerkissä arvot lajitellaan lambdalla.

# (nimi, sukunimi, ikä)
data = [("Sachin", "Tendulkar", "42"), ("Rahul", "Dravid", "44"), ("Virendra", "Sehwag", "40")]
tiedot.lajittelu (avain = lambda x: x [0]) # lajittelu nimen perusteella
tulosta (data)
data = [("Sachin", "Tendulkar", "42"), ("Rahul", "Dravid", "44"), ("Virendra", "Sehwag", "40")]
tiedot.lajittelu (avain = lambda x: x [1]) # lajittelu sukunimen perusteella
tulosta (data)
data = [("Sachin", "Tendulkar", "42"), ("Rahul", "Dravid", "44"), ("Virendra", "Sehwag", "40")]
tiedot.lajittelu (avain = lambda x: x [2]) # lajittelu iän mukaan
tulosta (data)

Siirry nyt python3-tulkkiin.

Lambda-toimintoa käytetään monissa sisäänrakennetuissa menetelmissä. Seuraavassa on joitain esimerkkejä:

1. Kartta

Tämä toiminto kartoittaa kukin elementti peräkkäin lambda-funktiolla.

Syntaksi:
kartta (funktio, seq)

Esim .:
luvut = [1,2,3,4,5,6]
Kerrotaan tässä luettelon kukin elementti kahdella.
mul_2 = kartta (lambda x: x * 2, summat)
print (list (mul_2)) # Se palauttaa karttaobjektin ja kirjoittamalla sen luettelona.

Yllä olevassa toiminnossa jokainen luetteloluettelon osa siirretään lambda-funktioon ja lambda-funktio kertoo sen 2: lla.

luvut = [1,2,3,4,5,6]
mul_2 = kartta (lambda x: x * 2, summat)
tulosta (luettelo (mul_2))

2. Suodattaa

Tämä toiminto suodattaa kaikki luettelon osat, joille lambda-funktio palauttaa True.

Syntaksi:
suodatin (funktio, seq)

Esim .:
luvut = [0,1,2,3,4,5,6,7,8,9,10]
parittomat_summat = suodatin (lambda x: x% 2, luvut)
print (list (parittomat_numerot)) # Se palauttaa karttaobjektin ja kirjoittamalla sen luettelona.

luvut = [0,1,2,3,4,5,6,7,8,9,10]
parittomat_summat = suodatin (lambda x: x% 2, luvut)
tulosta (luettelo (parittomat_numerot))

3. Vähentää

Tämä funktio palauttaa yhden arvon soveltamalla funktiolle func () seq.

Syntaksi:
vähentää (func, seq)

Esim .:
luvut = [0,1,2,3,4,5,6,7,8,9,10]
arvo = pienennä (lambda x, y: x + y, summat)
tulosta (arvo)

Yllä olevassa luettelossa se vie kaksi ensimmäistä elementtiä ja suorittaa lisäyksen. Lisäyksen tulos lisätään kolmanteen elementtiin ja niin edelleen. Lopuksi se palauttaa yhden arvon.

Huomaa: Tämä menetelmä ei ole käytettävissä python3 + -versiossa.

luvut = [0,1,2,3,4,5,6,7,8,9,10]
arvo = pienennä (lambda x, y: x + y, summat)
tulosta (arvo)

Johtopäätös

Tästä artikkelista olemme oppineet monia lambda-toiminnon näkökohtia. Riippuen siitä, mitä ohjelma tarvitsee, voimme käyttää sitä ja parantaa python-koodausta. Tätä käytetään yleisimmin argumenttien välittämiseen toiselle funktiolle (esimerkiksi edellä olevat toiminnot ovat nähneet kartoittavan, suodattavan ja pienentävän).

Add Mouse gestures to Windows 10 using these free tools
In recent years computers and operating systems have greatly evolved. There was a time when users had to use commands to navigate through file manager...
Control & manage mouse movement between multiple monitors in Windows 10
Dual Display Mouse Manager lets you control & configure mouse movement between multiple monitors, by slowing down its movements near the border. Windo...
WinMouse lets you customize & improve mouse pointer movement on Windows PC
If you want to improve the default functions of your mouse pointer use freeware WinMouse. It adds more features to help you get the most out of your h...