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.
- Miért van szükség a Python Lambda funkciókra?
- Mik azok a Python Lambda funkciók?
- Hogyan írjuk meg a Lambda függvényeket?
- Hogyan csökkenthetik az Anonymous funkciók a kód méretét?
- A Python Lambda a felhasználó által definiált függvényeken belül működik
- A névtelen függvények használata:
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:
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.