Funkciók feltérképezése, szűrése és csökkentése a Pythonban: Mindössze annyit kell tudnia

Ismerje meg a map (), a filter () és a reduc () függvényeket a Pythonban. Tudja azt is, hogyan kell használni őket lambda és a felhasználó által definiált függvényekkel, valamint egymással együtt.

A Python sok beépített funkciót tartalmaz, amelyek előre definiáltak, és amelyeket a végfelhasználó csak hívással használhat. Ezek a funkciók nemcsak megkönnyítik a programozók munkáját, hanem szabványos kódolási környezetet is létrehoznak. Ebben a cikkben három ilyen lenyűgöző funkcióval ismerkedhet meg, nevezetesen a map (), a filter és a kicsinyítés () in .



Mielőtt továbblépnénk, vessünk egy pillantást a tartalmára:



Kezdjük tehát. :)

Mi a map (), a filter () és a reduc () függvény a Pythonban?

Mint korábban említettük, a map (), a filter () és a reduc () beépítettek a Python. Ezek a funkciók lehetővé teszik a . A funkcionális programozásban csak az átadott argumentumok döntenek a kimenetről. Ezek a funkciók bármely más funkciót paraméterként vehetnek fel, és paraméterként más funkciókhoz is továbbadhatók. Vizsgáljuk meg tehát mélyebben ezeket a funkciókat.



A map () függvény:

A map () függvény egy magasabb rendű típus. Mint korábban említettük, ez a függvény egy másik függvényt vesz fel paraméterként az iterable szekvenciákkal együtt, és kimenetet ad vissza, miután a függvényt alkalmazta a szekvenciában lévő minden iterálhatóra. Szintaxisa a következő:

SZINTAXIS:

térkép (függvény, iterable)



Itt a függvény meghatároz egy kifejezést, amelyet viszont az iterable-ekre alkalmaznak. A térképfunkció felhasználhatja a felhasználó által definiált funkciókat is lambda funkciók paraméterként.

Felhasználó által definiált és Lambda funkciók használata:

Felhasználó által definiált függvények a térképen ():

A map () függvény a felhasználó által definiált függvényeket veheti figyelembe paraméterként. Ezeknek a funkcióknak a paramétereit kizárólag a felhasználó vagy a programozó állítja be. Például:

PÉLDA:

def newfunc (a): adjon vissza a * a x = map (newfunc, (1,2,3,4)) #x a térképobjektum print (x) print (set (x))

KIMENET:

{16, 1, 4, 9}

Amint láthatja, az x térképobjektum. A következő rész kimenete megjeleníti a térképfüggvényt, amely az newfunc () paramétert veszi fel, majd az a * a-t alkalmazza az összes iterable-re. Ennek eredményeként az összes iterable értékét megszorozzák maguk és visszaadják.

JEGYZET: A kimenet nem az iterable értékeinek sorrendjében van, mert a set () függvényt használtam. Használhatja például a lista () vagy a tuple () függvényeket is:

PÉLDA:

def newfunc (a): adjon vissza a * a x = map (newfunc, (1,2,3,4)) #x a térképobjektum nyomtatása (x) print (lista (x))

KIMENET:

[1, 4, 9, 16]

Több paraméterlistát is átadhat. Például:

PÉLDA:

def func (a, b): adja vissza a + b a = térkép (func, [2, 4, 5], [1,2,3]) print (a) print (duplán (a))

KIMENET:

(3, 6, 8)

Most nézzük meg, hogyan használhatja lambda funkciók a map () függvényen belül.

A Lambda funkciók a térképen () belül:

A Lambda függvények bármilyen névvel rendelkeznek. Ezeket a funkciókat gyakran paraméterként szállítják más funkciókhoz. Most próbáljuk meg beágyazni a lambda függvényeket a map () függvénybe. Tekintsük a következő példát:

PÉLDA:

tup = (5, 7, 22, 97, 54, 62, 77, 23, 73, 61) newtuple = tuple (térkép (lambda x: x + 3, tup)) print (newtuple)

KIMENET:

(8, 10, 25, 100, 57, 65, 80, 26, 76, 64)

A fenti kimenet annak az eredménye, hogy a lambda kifejezést (x + 3) alkalmazzuk a duplán lévő minden elemre.

A filter () függvény:

A filter () függvény felhasználásával létrehoz egy kimeneti listát, amely értékekből áll, amelyekre a függvény igaz. Szintaxisa a következő:

SZINTAXIS:

szűrő (függvény, iterable)

Csakúgy, mint a map (), ez a funkció is felhasználhatja a felhasználó által definiált függvényeket, valamint a lambda funkciókat is paraméterként.

PÉLDA:

def func (x): ha x> = 3: visszatér x y = szűrő (func, (1,2,3,4)) print (y) print (lista (y))

KIMENET:

[3. 4]

Amint láthatja, y a szűrőobjektum, a lista pedig a feltételre igaz értékek listája (x> = 3).

A lambda használata a szűrőben ():


A paraméterként használt lambda függvény tulajdonképpen meghatározza az ellenőrizendő feltételt. Például:

PÉLDA:

y = szűrő (lambda x: (x> = 3), (1,2,3,4)) nyomtatás (lista (y))

KIMENET: [3. 4]

A fenti kód ugyanazt a kimenetet produkálja, mint az előző függvény.

objektum tömb létrehozása Java-ban

A reduc () függvény:

A reduc () függvény, amint a neve is leírja, egy adott függvényt alkalmaz az iterable-re és egyetlen értéket ad vissza.

csökkentés-térkép csökkentés szűrő-edureka

A függvény szintaxisa a következő:

SZINTAXIS:

redukció (függvény, iterable)

A függvény itt határozza meg, hogy milyen kifejezést kell alkalmazni az iterable-ekre. Ezt a funkciót a functoolokból kell importálni modul . Például:

PÉLDA:

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

KIMENET: 187

A fenti példában a reduc függvény egymás után felveszi a listában szereplő összes iterálhatót, és egyetlen kimenetet ad vissza.

A Python térkép (), filter () és reduc () függvényei együtt használhatók.

A map (), a filter () és a reduc () függvények egymás mellett:

Amikor ezt megteszi, először a belső funkciókat oldják meg, majd a külső funkciók a belső funkciók kimenetén működnek.

Először próbáljuk meg átadni a filter () függvényt paraméterként a map () függvénynek.

A szűrő () használata a térképen () belül:

Az alább megadott kód először ellenőrzi, hogy a feltétel (x> = 3) igaz-e az iterable-ekre. Ezután a kimenetet a map () függvény segítségével térképezzük fel.

PÉLDA:

c = térkép (lambda x: x + x, szűrő (lambda x: (x> = 3), (1,2,3,4))) nyomtatás (c) lista)

KIMENET: [6, 8]

Ha kiszűri az adott duplából 3-nál nagyobb vagy azzal egyenlő egész számokat, akkor eredményül [3,4] -et kap. Majd ha ezt feltérképezi az (x + x) feltétel használatával, akkor megkapja a [6,8] értéket, amely a kimenet.

Map () használata a szűrőn () belül:


Ha a map () függvényt használja a filter () függvényen belül, akkor az iterable-eket először a map függvény működteti, majd a filter () feltétel alkalmazza őket.

PÉLDA:

c = szűrő (lambda x: (x> = 3), térkép (lambda x: x + x, (1,2,3,4)) #lambda x: (x> = 3) print (lista (c) )

KIMENET: [4, 6, 8]

Térkép () és szűrő () használata a redukción () belül:

A belső funkciók kimenete a csökkentés () függvényhez biztosított állapotnak megfelelően csökken.

PÉLDA:

d = kicsinyítés (lambda x, y: x + y, térkép (lambda x: x + x, szűrő (lambda x: (x> = 3), (1,2,3,4)))) nyomtatás (d)

KIMENET: 14

A kimenet a [6,8] eredménye, amely a belső térkép () és a szűrő () függvények eredménye.

Ezzel elértük a cikk végét a map (), filter () és a Python függvényeinek csökkentésében. Remélem, mindent tisztán megértett. Győződjön meg arról, 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 „térkép (), szűrő () és redukciós () függvények a Pythonban” blog megjegyzéseinek szakaszában, és amint lehetséges, kapcsolatba lépünk Önnel.

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