Mapovanie, filtrovanie a znižovanie funkcií v Pythone: Všetko, čo potrebujete vedieť



Zistite, čo sú funkcie map (), filter () a redukovať () v Pythone. Vedzte tiež, ako ich používať s lambdou a užívateľsky definovanými funkciami a navzájom.

Python poskytuje mnoho vstavaných funkcií, ktoré sú preddefinované a koncový užívateľ ich môže použiť ich jednoduchým zavolaním. Tieto funkcie nielen uľahčujú prácu programátorov, ale vytvárajú aj štandardné prostredie pre kódovanie. V tomto článku sa dozviete o troch takýchto pôsobivých funkciách, a to map (), filtrovanie a zmenšovanie () v .

Predtým, ako sa posunieme ďalej, pozrime sa na obsah:





Tak poďme na to. :)

Čo sú funkcie map (), filter () a redukovať () v Pythone?

Ako už bolo spomenuté, mapy (), filtre () a redukcie () sú zabudované Pythonu. Tieto funkcie umožňujú aspekt funkčného programovania . Vo funkčnom programovaní sú odovzdané argumenty jedinými faktormi, ktoré rozhodujú o výstupe. Tieto funkcie môžu brať ako parameter ktorúkoľvek inú funkciu a môžu byť dodávané ako parametre aj k ďalším funkciám. Pozrime sa teda teraz podrobnejšie na každú z týchto funkcií.



Funkcia map ():

Funkcia map () je typom vyššieho rádu. Ako už bolo spomenuté vyššie, táto funkcia berie ako parameter ďalšiu funkciu spolu so sekvenciou iterovateľných hodnôt a vráti výstup po použití tejto funkcie na každú iterovateľnú hodnotu prítomnú v postupnosti. Jeho syntax je nasledovná:

SYNTAX:

mapa (funkcia, opakovateľné údaje)



Tu funkcia definuje výraz, ktorý sa zase použije na opakovateľné tabuľky. Funkcia mapy môže trvať aj používateľom definované funkcie funkcie lambda ako parameter.

Používanie funkcií definovaných používateľom a Lambda v rámci:

Užívateľom definované funkcie v rámci mapy ():

Funkcia map () môže brať ako parametre užívateľom definované funkcie. Parametre týchto funkcií nastavuje výlučne užívateľ alebo programátor. Napríklad:

PRÍ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ÝKON:

{16, 1, 4, 9}

Ako vidíte, x je mapový objekt. Výstup ďalšej časti zobrazí funkciu mapy, pričom ako parameter použije parameter newfunc () a potom použije znak a * a na všetky opakovateľné položky. Výsledkom je, že hodnoty všetkých iterovateľných súborov sa samy vynásobia a vrátia.

POZNÁMKA: Výstup nie je v poradí podľa hodnôt iterovateľných súborov, pretože som použil funkciu set (). Môžete tiež použiť funkcie list () alebo n-tice () napríklad:

PRÍ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ÝKON:

[1, 4, 9, 16]

Môžete odovzdať aj viac ako jeden zoznam parametrov. Napríklad:

PRÍKLAD:

ako používať súbory v
def func (a, b): return a + b a = map (func, [2, 4, 5], [1,2,3]) print (a) print (n-tica (a))

VÝKON:

(3, 6, 8)

Teraz sa pozrime, ako môžete použiť funkcie lambda v rámci funkcie map ().

Funkcie lambda v mape ():

Funkcie lambda sú funkcie, ktoré majú akýkoľvek názov. Tieto funkcie sa často dodávajú ako parametre k ďalším funkciám. Teraz sa pokúsme vložiť funkcie lambda do funkcie map (). Uvažujme o nasledujúcom príklade:

PRÍKLAD:

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

VÝKON:

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

Vyššie uvedený výstup je výsledkom použitia výrazu lambda (x + 3) na každú položku prítomnú v n-tici.

Funkcia filter ():

Funkcia filter () sa používa na vytvorenie výstupného zoznamu pozostávajúceho z hodnôt, pre ktoré funkcia vráti hodnotu true. Jeho syntax je nasledovná:

SYNTAX:

filter (funkcia, opakovateľné údaje)

Rovnako ako map (), aj túto funkciu je možné použiť, keď ako parameter môžeme brať aj funkcie definované používateľom, ako aj funkcie lambda.

PRÍKLAD:

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

VÝKON:

[3. 4]

Ako vidíte, y je objekt filtra a zoznam predstavuje zoznam hodnôt, ktoré sú pravdivé pre danú podmienku (x> = 3).

Použitie lambda v rámci filtra ():


Funkcia lambda, ktorá sa používa ako parameter, v skutočnosti definuje podmienku, ktorá sa má skontrolovať. Napríklad:

PRÍKLAD:

y = filter (lambda x: (x> = 3), (1,2,3,4)) tlač (zoznam (y))

VÝKON: [3. 4]

Vyššie uvedený kód produkuje rovnaký výstup ako predchádzajúca funkcia.

Funkcia redukovať ():

Funkcia redukovať (), ako už názov popisuje, použije danú funkciu na iterovateľné hodnoty a vráti jednu hodnotu.

zmenšiť-mapa zmenšiť filter-edureka

Syntax tejto funkcie je nasledovná:

SYNTAX:

zmenšiť (funkcia, opakovateľné položky)

Funkcia tu definuje, aký výraz je potrebné použiť na opakovateľné tabuľky. Túto funkciu je potrebné importovať z functools modul . Napríklad:

PRÍKLAD:

z functools import znížiť znížiť (lambda a, b: a + b, [23,21,45,98])

VÝKON: 187

Vo vyššie uvedenom príklade funkcia redukcie postupne pridáva každú opakovateľnú hodnotu prítomnú v zozname a vracia jeden výstup.

Funkcie map (), filter () a redukovať () v Pythone je možné používať navzájom.

Používanie funkcií map (), filter () a redukcie () navzájom:

Keď to urobíte, najskôr sa vyriešia interné funkcie a potom vonkajšie funkcie pracujú na výstupe z interných funkcií.

Najskôr skúsme odovzdať funkciu filter () ako parameter funkcii map ().

Použitie filtra () v mape ():

Kód uvedený nižšie najskôr skontroluje, či je podmienka (x> = 3) pravdivá pre opakovateľné položky. Potom sa výstup mapuje pomocou funkcie map ().

PRÍKLAD:

c = mapa (lambda x: x + x, filter (lambda x: (x> = 3), (1,2,3,4))) tlač (zoznam (c))

VÝKON: [6, 8]

Ak odfiltrujete celé čísla väčšie alebo rovné 3 z danej n-tice, dostanete [3,4] ako výsledok. Ak to potom namapujete pomocou (x + x) podmienky, dostanete [6,8], čo je výstup.

Použitie map () vo filtri ():


Keď vo funkcii filter () použijete funkciu map (), na iteračné tabuľky sa najskôr pracuje pomocou mapovej funkcie a potom sa na ne použije podmienka filtra ().

PRÍKLAD:

c = filter (lambda x: (x> = 3), mapa (lambda x: x + x, (1,2,3,4))) #lambda x: (x> = 3) print (zoznam (c) )

VÝKON: [4, 6, 8]

Použitie map () a filtra () v rámci redukcie ():

Výstup vnútorných funkcií sa zníži podľa stavu dodaného funkcii redukovať ().

PRÍKLAD:

d = zmenšiť (lambda x, y: x + y, mapa (lambda x: x + x, filter (lambda x: (x> = 3), (1,2,3,4)))) tlačiť (d)

VÝKON: 14

Výstup je výsledkom [6,8], ktorý je výsledkom funkcií internej mapy () a filtra ().

Týmto sme sa dostali na koniec tohto článku týkajúceho sa funkcií map (), filter () a redukcie v Pythone. Dúfam, že ste všetko pochopili jasne. Určite cvičte čo najviac a obráťte sa na svoje skúsenosti.

Máte na nás otázku? Uveďte to, prosím, v sekcii komentárov tohto blogu „map (), filter () a redukovať () v Pythone“ a my sa vám ozveme čo najskôr.

Ak chcete získať podrobné informácie o Pythone a jeho rôznych aplikáciách, môžete sa zaregistrovať naživo s nepretržitou podporou a doživotným prístupom.