Funktsioonide kaardistamine, filtreerimine ja vähendamine Pythonis: kõik, mida peate teadma



Siit saate teada, mis on Pythonis funktsioonid map (), filter () ja reduc (). Samuti osake neid kasutada koos lambda ja kasutaja määratud funktsioonidega ning üksteisega.

Python pakub palju sisseehitatud funktsioone, mis on eelnevalt määratletud ja mida lõppkasutaja saab neile lihtsalt helistada. Need funktsioonid mitte ainult ei hõlbusta programmeerijate tööd, vaid loovad ka standardse kodeerimiskeskkonna. Selles artiklis saate teada kolmest sellisest muljetavaldavast funktsioonist: map (), filtreerimine ja vähendamine () sisse .

Enne edasiliikumist vaatame sisu üle:





Nii et alustame. :)

Mis on Pythonis funktsioonid map (), filter () ja reduc ()?

Nagu varem mainitud, on sisseehitatud kaart (), filter () ja vähendus () Pythoni kohta. Need funktsioonid võimaldavad programmi funktsionaalset programmeerimist . Funktsionaalses programmeerimises on väljundi üle otsustavad ainsad edastatud argumendid. Need funktsioonid võivad võtta parameetrina mis tahes muu funktsiooni ja neid saab parameetritena edastada ka teistele funktsioonidele. Vaatame nüüd neid funktsioone põhjalikumalt.



Funktsioon map ():

Funktsioon map () on kõrgemat järku tüüp. Nagu varem mainitud, võtab see funktsioon koos iterable-de jadaga parameetrina veel ühe funktsiooni ja tagastab väljundi pärast funktsiooni rakendamist igale järjestuses olevale iterable-le. Selle süntaks on järgmine:

SÜNTAKS:

kaart (funktsioon, iterable)



Siin määratleb funktsioon avaldise, mida omakorda rakendatakse iterable'idele. Kaardifunktsioon võib võtta ka kasutaja määratud funktsioone lambda funktsioonid parameetrina.

Kasutaja määratud ja Lambda funktsioonide kasutamine:

Kasutaja määratud funktsioonid kaardil ():

Funktsioon map () võib võtta parameetriteks kasutaja määratud funktsioonid. Nende funktsioonide parameetrid määrab ainult kasutaja või programmeerija. Näiteks:

NÄIDE:

def newfunc (a): tagastab a * a x = map (newfunc, (1,2,3,4)) #x on kaardiobjekti print (x) print (komplekt (x))

VÄLJUND:

{16, 1, 4, 9}

Nagu näete, on x kaardiobjekt. Järgmine osa väljund kuvab kaardi funktsiooni, võttes parameetriks newfunc () ja rakendab seejärel a * a kõigi iterable-de jaoks. Selle tulemusel korrutatakse kõigi iterable väärtused iseendaga ja tagastatakse.

MÄRGE: Väljund ei ole iterable väärtuste järjekorras, kuna olen kasutanud funktsiooni set (). Võite kasutada ka funktsioone list () või tuple (), näiteks:

NÄIDE:

def newfunc (a): tagastab a * a x = map (newfunc, (1,2,3,4)) #x on kaardiobjekti print (x) print (list (x))

VÄLJUND:

[1, 4, 9, 16]

Võite edastada ka mitu parameetrite loendit. Näiteks:

NÄIDE:

def func (a, b): tagastage a + b a = kaart (func, [2, 4, 5], [1,2,3]) print (a) print (kahekordne (a))

VÄLJUND:

(3, 6, 8)

kõne viitega c ++ näide

Vaatame nüüd, kuidas saate seda kasutada lambda funktsioonid funktsiooni map () sees.

Lambda funktsioonid kaardil ():

Lambda funktsioonid on funktsioonid, millel on mis tahes nimi. Neid funktsioone tarnitakse sageli parameetritena teistele funktsioonidele. Proovime nüüd kinnitada lambda funktsioonid funktsiooni map (). Vaatleme järgmist näidet:

madal ja sügav koopia javas

NÄIDE:

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

VÄLJUND:

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

Ülaltoodud väljund tuleneb lambda avaldise (x + 3) rakendamisest igale dupleksis olevale üksusele.

Funktsioon filter ():

Funktsiooni filter () kasutatakse väljundiloendi loomiseks, mis koosneb väärtustest, mille puhul funktsioon tagastab tõene. Selle süntaks on järgmine:

SÜNTAKS:

filter (funktsioon, iterable)

Nii nagu map (), saab ka seda funktsiooni kasutada parameetrina nii kasutaja kui ka lambda funktsioonid.

NÄIDE:

def func (x): kui x> = 3: tagastage x y = filter (func, (1,2,3,4)) print (y) print (loend (y))

VÄLJUND:

[3. 4]

Nagu näete, on y filtriobjekt ja loend on tingimuse (x> = 3) puhul tõene väärtuste loend.

Lambda kasutamine filtris ():


Parameetrina kasutatav lambda-funktsioon määratleb tegelikult kontrollitava tingimuse. Näiteks:

NÄIDE:

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

VÄLJUND: [3. 4]

Ülaltoodud kood toodab sama väljundi kui eelmine funktsioon.

Funktsioon vähendamine ():

Funktsioon reduc (), nagu nimeskirjeldab, rakendab iterable'idele antud funktsiooni ja tagastab ühe väärtuse.

redutseeri-kaart vähenda filter-edureka

Selle funktsiooni süntaks on järgmine:

SÜNTAKS:

vähendama (funktsioon, iterable)

Funktsioon määratleb siin, millist avaldist tuleb iterable'idele rakendada. See funktsioon tuleb importida funktsionaalsetest seadmetest moodul . Näiteks:

NÄIDE:

funktsionaalsetest vahenditest impordi vähendamine vähendamine (lambda a, b: a + b, [23,21,45,98])

VÄLJUND: 187

Ülaltoodud näites lisab redutseerimisfunktsioon järjest iga loendis oleva korduva ja tagastab ühe väljundi.

Pythoni funktsioone map (), filter () ja reduc () saab kasutada koos.

Kaardi () abil filtreerige () ja vähendage () funktsioone üksteisega:

Kui seda teete, lahendatakse kõigepealt sisemised funktsioonid ja seejärel toimivad välised funktsioonid sisemiste funktsioonide väljundil.

Proovime kõigepealt filtri () funktsiooni parameetrina edastada funktsiooni map ().

Filtri () kasutamine kaardil ():

Allpool toodud kood kontrollib esmalt, et tingimus (x> = 3) oleks iteratsioonide puhul tõene. Seejärel kaardistatakse väljund funktsiooni map () abil.

NÄIDE:

c = kaart (lambda x: x + x, filter (lambda x: (x> = 3), (1,2,3,4))) print (loend (c))

VÄLJUND: [6, 8]

Kui filtreerite antud korrutisest suuremad kui 3-ga täisarvud, saate tulemuseks [3,4]. Siis, kui kaardistate selle tingimuse (x + x) abil, saate väljundiks [6,8].

Kaardi () kasutamine filtris ():


Kui kasutate funktsiooni map () filter () funktsioonis, opereerib iterable esmalt kaardi funktsioon ja seejärel rakendatakse neile filtri () tingimust.

NÄIDE:

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

VÄLJUND: [4, 6, 8]

binaarotsinguprogramm javas

Kaardi () ja filtri () kasutamine vähendamise () sees:

Sisemiste funktsioonide väljundit vähendatakse vastavalt funktsioonile redutseerimise () tarnitud tingimustele.

NÄIDE:

d = vähendamine (lambda x, y: x + y, kaart (lambda x: x + x, filter (lambda x: (x> = 3), (1,2,3,4)))) print (d)

VÄLJUND: 14

Väljund on tulemuse [6,8] tulemus, mis on sisekaardi () ja filtri () funktsioonide tulemus.

Sellega oleme jõudnud käesoleva artikli lõppu kaardil (), filtreerides () ja vähendades Pythonis funktsioone. Loodan, et olete kõigest selgelt aru saanud. Harjutage kindlasti nii palju kui võimalik ja pöörake oma kogemused tagasi.

Kas teil on meile küsimus? Palun mainige seda selle ajaveebi „kaart (), filtreeri () ja vähendage () funktsioone Pythonis”) kommentaaride osas ja võtame teiega ühendust niipea kui võimalik.

Põhjalike teadmiste saamiseks Pythoni ja selle erinevate rakenduste kohta saate registreeruda otseülekandeks 24/7 toe ja ligipääsuga eluaeg.