Mapujte, filtrujte a snižujte funkce v Pythonu: Vše, co potřebujete vědět



Zjistěte, co jsou funkce map (), filter () a reduce () v Pythonu. Také víte, jak je používat s lambda a uživatelem definované funkce a spolu navzájem.

Python poskytuje mnoho vestavěných funkcí, které jsou předdefinovány a které může koncový uživatel použít pouhým voláním. Tyto funkce nejen usnadňují práci programátorů, ale také vytvářejí standardní prostředí pro kódování. V tomto článku se dozvíte o třech tak působivých funkcích, jmenovitě map (), filtrování a zmenšení () v .

Než se vydáme kupředu, podívejme se na obsah:





Pojďme tedy začít. :)

Co jsou funkce map (), filter () a reduce () v Pythonu?

Jak již bylo zmíněno dříve, map (), filter () a reduce () jsou zabudovány Pythonu. Tyto funkce umožňují aspekt funkčního programování . Ve funkčním programování jsou předané argumenty jedinými faktory, které rozhodují o výstupu. Tyto funkce mohou brát jakoukoli jinou funkci jako parametr a mohou být také dodávány do dalších funkcí jako parametry. Pojďme se nyní podrobněji podívat na každou z těchto funkcí.



Funkce map ():

Funkce map () je typ vyššího řádu. Jak již bylo zmíněno dříve, tato funkce přebírá další funkci jako parametr spolu se posloupností iterovatelných hodnot a vrací výstup po použití funkce na každou iterovatelnou hodnotu přítomnou v posloupnosti. Jeho syntax je následující:

SYNTAX:

mapa (funkce, iterovatelné)



Tady funkce definuje výraz, který je zase aplikován na iterable. Funkce mapy může brát i uživatelem definované funkce funkce lambda jako parametr.

Používání uživatelem definovaných funkcí a funkcí Lambda v rámci:

Uživatelem definované funkce v rámci mapy ():

Funkce map () může brát uživatelem definované funkce jako parametry. Parametry těchto funkcí nastavuje výhradně uživatel nebo programátor. Například:

PŘÍKLAD:

def newfunc (a): návrat a * a x = mapa (newfunc, (1,2,3,4)) #x je objekt mapy print (x) print (set (x))

VÝSTUP:

{16, 1, 4, 9}

Jak vidíte, x je objekt mapy. Výstup další části zobrazí funkci mapy, přičemž jako parametr použije newfunc () a poté použije a * a na všechny iterovatelné položky. Výsledkem je, že hodnoty všech iterable jsou samy vynásobeny a vráceny.

POZNÁMKA: Výstup není v pořadí podle hodnot iterable, protože jsem použil funkci set (). Můžete také použít funkce list () nebo tuple (), například:

PŘÍKLAD:

def newfunc (a): návrat a * a x = mapa (newfunc, (1,2,3,4)) #x je objekt mapy print (x) print (list (x))

VÝSTUP:

[1, 4, 9, 16]

Můžete předat i více než jeden seznam parametrů. Například:

PŘÍKLAD:

zvýšit číslo na sílu v Javě
def func (a, b): návrat a + b a = mapa (func, [2, 4, 5], [1,2,3]) print (a) print (n-tice (a))

VÝSTUP:

(3, 6, 8)

Nyní se podívejme, jak můžete použít funkce lambda ve funkci map ().

Funkce Lambda v mapě ():

Funkce Lambda jsou funkce, které mají jakýkoli název. Tyto funkce se často dodávají jako parametry dalším funkcím. Nyní zkusme vložit funkce lambda do funkce map (). Zvažte následující příklad:

PŘÍKLAD:

tup = (5, 7, 22, 97, 54, 62, 77, 23, 73, 61) newtuple = n-tice (mapa (lambda x: x + 3, tup)) tisk (newtuple)

VÝSTUP:

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

Výše uvedený výstup je výsledkem použití výrazu lambda (x + 3) na každou položku přítomnou v n-tici.

Funkce filter ():

Funkce filter () se používá k vytvoření výstupního seznamu skládajícího se z hodnot, pro které funkce vrací true. Jeho syntaxe je následující:

SYNTAX:

filtr (funkce, iterovatelné)

Stejně jako map () lze tuto funkci použít také k převzetí uživatelem definovaných funkcí a funkcí lambda jako parametru.

PŘÍKLAD:

def func (x): if x> = 3: return x y = filter (func, (1,2,3,4)) print (y) print (list (y))

VÝSTUP:

[3. 4]

Jak vidíte, y je objekt filtru a seznam je seznam hodnot, které platí pro podmínku (x> = 3).

Použití lambda v rámci filtru ():


Funkce lambda, která se používá jako parametr, ve skutečnosti definuje podmínku, která má být zkontrolována. Například:

PŘÍKLAD:

y = filtr (lambda x: (x> = 3), (1,2,3,4)) tisk (seznam (y))

VÝSTUP: [3. 4]

Výše uvedený kód produkuje stejný výstup jako předchozí funkce.

Funkce redukovat ():

Funkce redukovat (), jak název popisuje, použije danou funkci na iterovatelné položky a vrátí jednu hodnotu.

zmenšit mapu zmenšit filtr edureka

Syntaxe této funkce je následující:

SYNTAX:

zmenšit (funkce, iterovatelné)

Funkce zde definuje, jaký výraz je třeba použít na iterable. Tuto funkci je třeba importovat z functools modul . Například:

PŘÍKLAD:

z functools import zmenšit zmenšit (lambda a, b: a + b, [23,21,45,98])

VÝSTUP: 187

Ve výše uvedeném příkladu funkce redukce postupně přidá každou iterovatelnou hodnotu přítomnou v seznamu a vrátí jeden výstup.

Funkce map (), filter () a remove () v Pythonu lze používat spolu navzájem.

Společné používání funkcí map (), filter () a reduce ():

Když to uděláte, nejdříve se vyřeší interní funkce a poté vnější funkce fungují na výstupu interních funkcí.

Nejprve zkusme předat funkci filter () jako parametr funkci map ().

Použití filtru () v mapě ():

Níže uvedený kód nejprve zkontroluje, zda je podmínka (x> = 3) pravdivá pro iterable. Potom je výstup mapován pomocí funkce map ().

PŘÍKLAD:

c = mapa (lambda x: x + x, filtr (lambda x: (x> = 3), (1,2,3,4))) tisk (seznam (c))

VÝSTUP: [6, 8]

Pokud odfiltrujete celá čísla větší než nebo rovná 3 z dané n-tice, dostanete [3,4] jako výsledek. Pokud to namapujete pomocí podmínky (x + x), dostanete [6,8], což je výstup.

Použití map () ve filtru ():


Když použijete funkci map () ve funkci filter (), iterable jsou nejprve obsluhovány funkcí map a poté je na ně aplikována podmínka filter ().

PŘÍKLAD:

c = filtr (lambda x: (x> = 3), mapa (lambda x: x + x, (1,2,3,4))) #lambda x: (x> = 3) tisk (seznam (c) )

VÝSTUP: [4, 6, 8]

Použití map () a filtru () v rámci redukce ():

Výstup interních funkcí se sníží podle podmínek dodaných funkci redukce ().

PŘÍKLAD:

d = zmenšit (lambda x, y: x + y, mapa (lambda x: x + x, filtr (lambda x: (x> = 3), (1,2,3,4)))) print (d)

VÝSTUP: 14

Výstup je výsledkem [6,8], který je výsledkem interních funkcí map () a filter ().

Tím jsme dosáhli konce tohoto článku o map (), filter () a redukci funkcí v Pythonu. Doufám, že jste vše pochopili jasně. Ujistěte se, že cvičíte co nejvíce a vraťte své zkušenosti.

Máte na nás dotaz? Uveďte to prosím v sekci komentářů v tomto blogu „map (), filter () a remove () Functions v Pythonu“ a my se vám ozveme co nejdříve.

Chcete-li získat podrobné znalosti o Pythonu a jeho různých aplikacích, můžete se zaregistrovat naživo s nepřetržitou podporou a doživotním přístupem.