Mik azok a Lambda funkciók és hogyan használhatók?



Ismerje meg a Python lambda függvényeket, a normál függvények és a lambda függvények közötti különbséget, valamint azt, hogy miként használhatók a filter (), a map (), a reduc ().

A név olyan megegyezés, amelyet bármely entitásra utalnak vagy címeznek. Szinte mindennek körülöttünk van neve. A programozás világa is ennek megfelelően halad. De kötelező-e mindent megnevezni? Vagy kaphat valamit, ami csak „névtelen”? A válasz igen. ' biztosítja a Lambda függvényeket, más néven Névtelen funkciókat, amelyek valójában névtelenek. Tehát lépjünk előre, hogy megismerjük a Python ezen „névtelen rejtélyeit”, a következő sorrendben.

Tehát kezdjük :)





Miért érdemes használni a Python Lambda függvényeket?


Az anonim funkciók fő célja akkor jön létre, amikor csak egyszer kell valamilyen funkció. Létrehozhatók bárhol, ahol szükség van rájuk. Emiatt a Python Lambda függvények dobásfüggvények néven is ismertek, amelyeket más előre definiált funkciókkal együtt használnak, mint például szűrő (), térkép () stb. Ezek a funkciók segítenek csökkenteni a kód sorainak számát a Normál .

Ennek bizonyítására lépjünk tovább és ismerkedjünk meg a Python Lambda funkcióival.



Mik azok a Python Lambda funkciók?


A Python Lambda függvények olyan funkciók, amelyeknek nincs nevük. Névtelen vagy névtelen funkcióként is ismerik őket. A „lambda” szó nem név, hanem kulcsszó. Ez a kulcsszó meghatározza, hogy a következő függvény névtelen.

Most, hogy tisztában van azzal, hogy ezek az anonim függvények mire utalnak, lépjünk tovább, hogy lássuk, miként írja ezeket a Python Lambda függvényeket.

Hogyan írjuk a Lambda függvényeket Pythonba?

Lambda függvény jön létre a lambda operátor segítségével, és szintaxisa a következő:



SZINTAXIS:

lambda érvek: kifejezés

Piton lambda funkció tetszőleges számú argumentummal rendelkezhet, de ehhez csak annyi kell egy kifejezés. A bemenetek vagy argumentumok 0-tól kezdődhetnek, és bármilyen határig felemelkedhetnek. Csakúgy, mint bármely más funkció, teljesen rendben van lambda funkciók bemenet nélkül. Ezért a következő formátumokban rendelkezhet lambda függvényekkel:

PÉLDA:

lambda: „Adja meg a célt”

Itt a lambda függvény nem vesz fel érveket.

PÉLDA:

lambda aegy: „Adja meg az a használatátegy'

Itt lambda egy bemenetet vesz fel, amely aegy.

tömb objektum a java-ban

Hasonlóképpen megkaphatja a lambda aegy, nak nek2, nak nek3..nak nekn.

Vegyünk néhány példát ennek bemutatására:

1. példa:

a = lambda x: x * x nyomtatás (a (3))

KIMENET: 9.

2. példa:

a = lambda x, y: x * y nyomtatás (a (3,7))

KIMENET: huszonegy

Mint láthatja, itt két példát hoztam. Az első példa csak egy kifejezéssel használja a lambda függvényt, míg a második példa két argumentummal rendelkezik. Felhívjuk figyelmét, hogy mindkét függvénynek egyetlen kifejezése van, amelyet az argumentumok követnek. Ezért a lambda függvények nem használhatók ott, ahol többsoros kifejezésekre van szükség.

Másrészről, a normál python függvények tetszőleges számú állítást foglalhatnak a funkciódefinícióikban.

Hogyan csökkenthetik az Anonymous funkciók a kód méretét?

Mielőtt összehasonlítanánk a szükséges kód mennyiségét, először írjuk le a szintaxist és hasonlítsa össze a korábban leírt lambda funkciókkal.

A Python bármely normál függvényét az a segítségével definiálhatjuk def kulcsszó az alábbiak szerint:

SZINTAXIS:

def függvény_neve (paraméterek):
nyilatkozat (ok)

Mint látható, a lambda függvényhez szükséges kód mennyisége meglehetősen kisebb, mint a normál függvényeké.

kibővítheti és megvalósíthatja java-ban

Írjuk át a korábban vett példát a normál függvények használatával.

PÉLDA:

def my_func (x): return x * x print (my_func (3))

KIMENET: 9.

Mint látható, a fenti példában egy visszatérési utasításra van szükségünk a my_funcun belül a 3 négyzet értékének értékeléséhez. Ezzel szemben a lambda függvény nem ezt a return utasítást használja, hanem az anonim függvény törzsét. ugyanazon a soron van írva, mint maga a függvény, a kettõspont szimbólum után. Ezért a függvény mérete kisebb, mint a my_func.

A fenti példákban szereplő lambda-függvényeket azonban másokkal hívjuk meg a. Ez azért történik, mert ezek a függvények névtelenek, ezért szükségük van néhány név meghívására. De ez a tény zavarónak tűnhet, hogy miért használjunk ilyen név nélküli funkciókat, amikor valóban más nevet kell rendelnünk a híváshoz? És természetesen, miután a funkcióhoz a nevet rendeltem, már nem marad névtelen! Jobb?

Jogos kérdés, de a lényeg az, hogy nem ez a helyes módszer ezen névtelen funkciók használatára.

Az anonim funkciókat a legjobban másokon belül lehet használni magasabb rendű funkciók vagy argumentumként használnak valamilyen függvényt, vagy kimenetként egy függvényt adnak vissza. Ennek bizonyítására haladjunk tovább a következő témánk felé.

A Python Lambda a felhasználó által definiált függvényeken belül működik:

A fentiekhez hasonlóan a lambda függvényeket más funkciókban is használják a legfinomabb előny jelölésére.

A következő példa az new_func áll, amely egy normál python függvény, amely egy x argumentumot vesz fel. Ez az argumentum hozzáadódik néhány ismeretlen y argumentumhoz, amelyet a lambda függvény szolgáltat.

PÉLDA:

def new_func (x): return (lambda y: x + y) t = new_func (3) u = new_func (2) print (t (3)) print (u (3))

KIMENET:

6.
5.
Amint láthatja, a fenti példában a new_func-ban található lambda függvény meghívásra kerül, valahányszor használjuk az new_func () függvényt. Minden alkalommal külön értékeket adhatunk át az argumentumoknak.

Most, hogy látta, hogyan lehet anonim függvényeket használni a magasabb rendű függvényeken belül, most lépjünk előre, hogy megértsük az egyik legnépszerűbb felhasználási módot, amely a filter (), map () és a reduc () módszereken belül található.

A névtelen függvények használata a filteren (), a térképen () és a csökkentésen () belül:

Névtelen funkciók belül szűrő():

szűrő():

A filter () módszerrel az adott iterable-eket (listákat, halmazokat stb.) Kiszűrjük egy másik, argumentumként átadott függvény segítségével, hogy az összes elem igaz vagy hamis legyen.

A függvény szintaxisa:

SZINTAXIS:

szűrő (függvény, iterálható)

Most vegye figyelembe a következő példát:

PÉLDA:

mi a tábla paramétere
my_list = [2,3,4,5,6,7,8] new_list = list (szűrő (lambda a: (a / 3 == 2), my_list)) nyomtatás (new_list)

KIMENET: [6]

Itt a my_list egy iterálható értékek listája, amelyet továbbítunk a szűrő függvénynek. Ez a függvény a lambda függvény segítségével ellenőrzi, hogy vannak-e olyan értékek a listában, amelyek 2-vel egyenlőek lesznek, ha elosztjuk 3-mal. A kimenet egy listából áll, amely kielégíti az anonim függvényben található kifejezést.

térkép():

A map () függvény a Pythonban egy olyan függvény, amely egy adott függvényt alkalmaz az összes iterable-re, és új listát ad vissza.

SZINTAXIS:

térkép (függvény, iterálható)

Vegyünk egy példát a lambda függvények használatának bemutatására a map () függvényen belül:

PÉLDA:

my_list = [2,3,4,5,6,7,8] new_list = list (térkép (lambda a: (a / 3! = 2), li)) print (új_lista)

KIMENET:

[Igaz, igaz, igaz, igaz, hamis, igaz, igaz]

A fenti kimenet azt mutatja, hogy amikor az iterable értéke nem egyenlő 2-vel, ha elosztjuk 3-mal, a visszaküldött eredménynek igaznak kell lennie. Ezért a my_list összes elemére igaz értéket ad vissza, kivéve a 6 értéket, amikor a feltétel hamisra változik.

csökkenteni ():

A reduc () függvény segítségével valamilyen más függvényt alkalmazhatunk azon elemek listájára, amelyeket paraméterként adunk át neki, és végül egyetlen értéket ad vissza.

Ennek a függvénynek a szintaxisa a következő:

SZINTAXIS:

csökkentés (függvény, sorrend)

PÉLDA:

a functools-ból import csökkentés csökkentés (lambda a, b: a + b, [23,21,45,98])

A fenti példát a következő kép mutatja:

redukál-python lambda-edureka

KIMENET: 187

A kimenet világosan mutatja, hogy a lista összes eleme az folyamatosan hozzáadva hogy visszaadja a végeredményt.

Ezzel véget értünk a „Python Lambda” cikkről. Remélem, tisztában van mindazzal, amit megosztott veled. Győződjön meg róla, hogy a lehető legtöbbet gyakorolja, és állítsa vissza a tapasztalatait.

Van egy kérdésünk? Kérjük, említse meg ennek a „Python Lambda” blognak a megjegyzés rovatában, és a lehető leghamarabb kapcsolatba lépünk Önnel.

Ha mélyreható ismereteket szeretne szerezni a Pythonról és a különböző alkalmazásokról, regisztrálhat élőben 24/7 támogatással és élethosszig tartó hozzáféréssel.