Zemljevid, filtriranje in zmanjšanje funkcij v Pythonu: vse, kar morate vedeti



Naučite se, kaj so funkcije Python map (), filter () in reduce (). Vedeti jih je treba tudi uporabljati z lambda in uporabniško določenimi funkcijami ter skupaj.

Python ponuja številne vgrajene funkcije, ki so vnaprej določene in jih lahko končni uporabnik uporablja samo tako, da jih pokliče. Te funkcije ne samo olajšajo delo programerjev, temveč ustvarjajo tudi standardno kodirno okolje. V tem članku boste spoznali tri tako impresivne funkcije, in sicer map (), filtriranje in zmanjšanje () v .

Preden nadaljujemo, si oglejmo vsebino:





Začnimo torej. :)

Kaj so funkcije map (), filter () in reduce () v Pythonu?

Kot smo že omenili, so vdelani map (), filter () in reduce () Pythona. Te funkcije omogočajo vidik funkcionalnega programiranja . Pri funkcionalnem programiranju so posredovani argumenti edini dejavniki, ki odločajo o rezultatu. Te funkcije lahko kot parameter vzamejo katero koli drugo funkcijo in jih lahko kot parametre posredujejo tudi drugim funkcijam. Poglejmo si zdaj globlje vsako od teh funkcij.



Funkcija map ():

Funkcija map () je vrsta višjega reda. Kot smo že omenili, ta funkcija kot parameter vzame drugo funkcijo skupaj z zaporedjem iterabil in vrne izhod po uporabi funkcije za vsak iterabil, ki je prisoten v zaporedju. Njegova sintaksa je naslednja:

SINTAKSA:

zemljevid (funkcija, iterables)



Tu funkcija definira izraz, ki se nato uporabi za iterable. Funkcija map lahko uporablja tudi uporabniško določene funkcije lambda funkcije kot parameter.

Uporaba uporabniško določenih in Lambda funkcij znotraj:

Uporabniško določene funkcije znotraj map ():

Funkcija map () lahko kot parametre sprejme uporabniško določene funkcije. Parametre teh funkcij izključno nastavi uporabnik ali programer. Na primer:

PRIMER:

def newfunc (a): vrne a * a x = map (newfunc, (1,2,3,4)) #x je objekt zemljevida print (x) print (set (x))

IZHOD:

{16, 1, 4, 9}

Kot lahko vidite, je x objekt na zemljevidu. Naslednji izhodni del prikaže funkcijo zemljevida, ki za parameter vzame newfunc (), nato pa uporabi a * a za vse iterable. Posledično se vrednosti vseh ponovljivih elementov pomnožijo in vrnejo.

OPOMBA: Izhod ni v vrstnem redu vrednosti iterables, ker sem uporabil funkcijo set (). Uporabite lahko tudi funkcije list () ali tuple (), na primer:

PRIMER:

def newfunc (a): vrne a * a x = map (newfunc, (1,2,3,4)) #x je objekt zemljevida print (x) print (list (x))

IZHOD:

[1, 4, 9, 16]

Prenesete lahko tudi več seznamov parametrov. Na primer:

PRIMER:

def func (a, b): vrne a + b a = map (func, [2, 4, 5], [1,2,3]) print (a) print (tuple (a))

IZHOD:

(3, 6, 8)

niz loči več ločil

Zdaj pa poglejmo, kako lahko uporabite lambda funkcije znotraj funkcije map ().

Lambda funkcije znotraj zemljevida ():

Lambda funkcije so funkcije, ki imajo kakršno koli ime. Te funkcije so pogosto na voljo kot parametri za druge funkcije. Zdaj poskusimo vdelati lambda funkcije v funkcijo map (). Upoštevajte naslednji primer:

niz predmetov v programu Java primer

PRIMER:

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

IZHOD:

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

Zgornji izhod je rezultat uporabe lambda izraza (x + 3) za vsak element, ki je prisoten v koruzi.

Funkcija filtra ():

Funkcija filter () se uporablja za ustvarjanje izhodnega seznama, sestavljenega iz vrednosti, za katere funkcija vrne true. Njegova sintaksa je naslednja:

SINTAKSA:

filter (funkcija, iterables)

Tako kot map () lahko tudi ta funkcija uporablja tudi kot parameter uporabniško določene funkcije in lambda funkcije.

PRIMER:

def func (x): če je x> = 3: vrni x y = filter (func, (1,2,3,4)) print (y) print (seznam (y))

IZHOD:

[3. 4]

Kot lahko vidite, je y objekt filtra, seznam pa seznam vrednosti, ki veljajo za pogoj (x> = 3).

Uporaba lambda znotraj filtra ():


Lambda funkcija, ki se uporablja kot parameter, dejansko določa pogoj, ki ga je treba preveriti. Na primer:

PRIMER:

y = filter (lambda x: (x> = 3), (1,2,3,4)) print (seznam (y))

IZHOD: [3. 4]

Zgornja koda daje enak izhod kot prejšnja funkcija.

Funkcija zmanjšanje ():

Funkcija reduce (), kot opisuje ime, uporabi določeno funkcijo za iterable in vrne eno vrednost.

zmanjšanje-zemljevid zmanjšanje filter-edureka

Sintaksa te funkcije je naslednja:

SINTAKSA:

zmanjšanje (funkcija, iterables)

Funkcija tukaj določa, kateri izraz je treba uporabiti za iterable. To funkcijo je treba uvoziti iz functools modul . Na primer:

PRIMER:

od functools uvoz zmanjšaj zmanjšaj (lambda a, b: a + b, [23,21,45,98])

IZHOD: 187

V zgornjem primeru funkcija redukcije zaporedno doda vsak iterabil, ki je prisoten na seznamu, in vrne en izhod.

Funkcije map (), filter () in reduce () v Pythonu lahko uporabljate med seboj.

Uporaba funkcij map (), filtriranje () in zmanjšanje () med seboj:

Ko to storite, se najprej rešijo notranje funkcije, nato pa zunanje funkcije delujejo na izhodu notranjih funkcij.

Poskusimo najprej posredovati funkcijo filter () kot parameter funkciji map ().

Uporaba filtra () znotraj zemljevida ():

Spodnja koda najprej preveri, ali pogoj (x> = 3) drži za iterable. Nato se izhod preslika s funkcijo map ().

PRIMER:

c = zemljevid (lambda x: x + x, filter (lambda x: (x> = 3), (1,2,3,4))) natisni (seznam (c))

IZHOD: [6, 8]

Če iz danega nabora izločite cela števila, večja ali enaka 3, dobite kot rezultat [3,4]. Potem, če to preslikate s pogojem (x + x), boste dobili [6,8], kar je rezultat.

Uporaba zemljevida () znotraj filtra ():


Ko v funkciji filter () uporabljate funkcijo map (), funkcijo map najprej operira iterable, nato pa zanje velja pogoj filter ().

PRIMER:

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

IZHOD: [4, 6, 8]

povezana in nepovezana preobrazba v informatiki

Uporaba map () in filtra () znotraj reduce ():

Izhod notranjih funkcij se zmanjša glede na pogoje, podane funkciji reduce ().

PRIMER:

d = zmanjšanje (lambda x, y: x + y, zemljevid (lambda x: x + x, filter (lambda x: (x> = 3), (1,2,3,4)))) print (d)

IZHOD: 14.

Rezultat je rezultat [6,8], ki je rezultat notranjih funkcij map () in filter ().

S tem smo prišli do konca tega članka o map (), filter () in zmanjšanju funkcij v Pythonu. Upam, da ste vse jasno razumeli. Poskrbite, da boste čim več vadili in si povrnili izkušnje.

Imate vprašanje za nas? Prosimo, omenite ga v oddelku za komentarje tega spletnega dnevnika »map (), filter () in reduce () Functions in Python«, mi se vam bomo oglasili takoj, ko bo mogoče.

Če želite pridobiti poglobljeno znanje o Pythonu skupaj z različnimi aplikacijami, se lahko prijavite v živo s 24-urno podporo in življenjskim dostopom.