Žemėlapių, filtravimo ir sumažinimo funkcijos „Python“: viskas, ką reikia žinoti



Sužinokite, kas yra „Python“ funkcijos map (), filter () ir reduc (). Taip pat žinokite, kaip juos naudoti kartu su „lambda“ ir vartotojo nustatytomis funkcijomis bei kartu.

„Python“ teikia daugybę iš anksto numatytų integruotų funkcijų, kurias galutinis vartotojas gali naudoti tiesiog jiems paskambinęs. Šios funkcijos ne tik palengvina programuotojų darbą, bet ir sukuria standartinę kodavimo aplinką. Šiame straipsnyje sužinosite apie tris tokias įspūdingas funkcijas, būtent žemėlapį (), filtrą ir mažinimą () .

Prieš eidami į priekį, pažvelkime į turinį:





Taigi pradėkime. :)

Kas yra „Python“ funkcijos map (), filter () ir reduc ()?

Kaip minėta anksčiau, žemėlapis (), filtras () ir mažinimas () yra įmontuoti „Python“. Šios funkcijos įgalina funkcinį programavimo aspektą . Funkciniame programavime argumentai yra vieninteliai veiksniai, lemiantys rezultatą. Šios funkcijos gali būti bet kuri kita funkcija kaip parametras ir gali būti teikiama ir kitoms funkcijoms kaip parametras. Taigi dabar pažvelkime į kiekvieną iš šių funkcijų giliau.



Žemėlapio () funkcija:

Funkcija map () yra aukštesnės eilės tipas. Kaip minėta anksčiau, ši funkcija kartu su pasikartojimų seka ima kitą funkciją kaip parametrą ir grąžina išvestį pritaikius funkciją kiekvienam iteracijai, esančiai sekoje. Jo sintaksė yra tokia:

Sintaksė:

žemėlapis (funkcija, kartojamos versijos)



Čia funkcija apibrėžia išraišką, kuri savo ruožtu taikoma iteracijoms. Žemėlapio funkcija gali atlikti vartotojo apibrėžtas funkcijas lambda funkcijos kaip parametrą.

Naudojant vartotojo nustatytas ir „Lambda“ funkcijas:

Vartotojo nustatytos funkcijos žemėlapyje ():

Žemėlapio () funkcija gali naudoti vartotojo nustatytas funkcijas kaip parametrus. Šių funkcijų parametrus išimtinai nustato vartotojas arba programuotojas. Pavyzdžiui:

PAVYZDYS:

def newfunc (a): grąžinti a * a x = map (newfunc, (1,2,3,4)) #x yra žemėlapio objekto spausdinimo (x) spausdinimas (rinkinys (x))

IŠĖJIMAS:

{16, 1, 4, 9}

Kaip matote, x yra žemėlapio objektas. Kitos dalies išvestyje rodoma žemėlapio funkcija, kurios parametru yra „newfunc“ (), ir tada ji taiko a * a visoms kartotinėms. Todėl visų kartojamų verčių vertės padauginamos iš jų pačių ir grąžinamos.

PASTABA: Išvestis neatitinka iteruojamų elementų reikšmių, nes aš naudojau funkciją set (). Taip pat galite naudoti sąrašo () arba paketo () funkcijas, pavyzdžiui:

PAVYZDYS:

def newfunc (a): grąžinti a * a x = map (newfunc, (1,2,3,4)) #x yra žemėlapio objekto spausdinimo (x) spausdinimas (sąrašas (x))

IŠĖJIMAS:

[1, 4, 9, 16]

Taip pat galite perduoti daugiau nei vieną parametrų sąrašą. Pavyzdžiui:

PAVYZDYS:

def func (a, b): grąžinkite a + b a = žemėlapį (func, [2, 4, 5], [1,2,3]) spausdinti (a) spausdinti (kelias (a))

IŠĖJIMAS:

(3, 6, 8)

Dabar pažiūrėkime, kaip galite naudotis lambda funkcijos žemėlapio () funkcijoje.

„Lambda“ funkcijos žemėlapyje ():

„Lambda“ funkcijos yra funkcijos, kurios turi bet kokį pavadinimą. Šios funkcijos dažnai pateikiamos kaip parametrai kitoms funkcijoms. Dabar pabandykime įterpti lambda funkcijas į žemėlapio () funkciją. Apsvarstykite šį pavyzdį:

PAVYZDYS:

tup = (5, 7, 22, 97, 54, 62, 77, 23, 73, 61) newtuple = dvigubas (žemėlapis (lambda x: x + 3, tup)) spausdinti (newtuple)

IŠĖJIMAS:

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

Pirmiau pateiktas rezultatas yra lambda išraiškos (x + 3) pritaikymo kiekvienam elementui, esančiam paketyje, rezultatas.

Filtro () funkcija:

Funkcija filtras () naudojama sukurti išvesties sąrašą, susidedantį iš reikšmių, kurioms funkcija grąžina tikrąją reikšmę. Jo sintaksė yra tokia:

Sintaksė:

filtras (funkcija, kartotiniai failai)

Kaip ir žemėlapis (), ši funkcija gali būti naudojama kaip vartotojo parametras, taip pat lambda funkcijos kaip parametras.

PAVYZDYS:

def func (x): jei x> = 3: grąžinti x y = filtras (func, (1,2,3,4)) spausdinti (y) spausdinti (sąrašas (y))

IŠĖJIMAS:

[3. 4]

Kaip matote, y yra filtro objektas, o sąrašas yra sąlyga (x> = 3) teisingų reikšmių sąrašas.

Naudojant lambda filtre ():


Lambda funkcija, naudojama kaip parametras, iš tikrųjų apibrėžia tikrintiną sąlygą. Pavyzdžiui:

PAVYZDYS:

y = filtras (lambda x: (x> = 3), (1,2,3,4)) spausdinti (sąrašas (y))

IŠĖJIMAS: [3. 4]

Aukščiau pateiktas kodas sukuria tą patį išvestį kaip ir ankstesnė funkcija.

Redukcijos () funkcija:

Funkcija reduc (), kaip aprašoma pavadinime, taiko nurodytą funkciją iteracijoms ir pateikia vieną vertę.

hashmap diegimas Java pavyzdyje

sumažinti-žemėlapis sumažinti filtras-edureka

Šios funkcijos sintaksė yra tokia:

Sintaksė:

sumažinti (funkcija, kartotiniai)

Funkcija čia apibrėžia, kokią išraišką reikia taikyti kartotinėms. Šią funkciją reikia importuoti iš „functools“ modulis . Pavyzdžiui:

PAVYZDYS:

iš functools importas sumažina sumažina (lambda a, b: a + b, [23,21,45,98])

IŠĖJIMAS: 187

Pirmiau pateiktame pavyzdyje redukcijos funkcija nuosekliai prideda kiekvieną kartojamą sąrašą sąraše ir pateikia vieną išvestį.

Žemėlapio (), filtro () ir mažinimo () „Python“ funkcijos gali būti naudojamos kartu.

Naudodami „map“ (), filtruokite () ir mažinkite () funkcijas kartu:

Kai tai darote, pirmiausia išsprendžiamos vidinės funkcijos, o tada išorinės funkcijos veikia pagal vidinių funkcijų išvestį.

Pirmiausia pabandykime perduoti filtro () funkciją kaip parametrą žemėlapio () funkcijai.

Naudojant filtrą () žemėlapyje ():

Žemiau pateiktas kodas pirmiausia patikrina, ar sąlyga (x> = 3) yra teisinga iteracijoms. Tada išvestis atvaizduojama naudojant žemėlapio () funkciją.

PAVYZDYS:

c = žemėlapis (lambda x: x + x, filtras (lambda x: (x> = 3), (1,2,3,4))) spausdinti (sąrašas (c))

IŠĖJIMAS: [6, 8]

Jei filtruojate sveikus skaičius, didesnius arba lygius 3 iš pateikto dvigubo skaičiaus, gausite [3,4]. Tada, jei susietumėte tai naudodami (x + x) sąlygą, gausite [6,8], kuri yra išvestis.

Žemėlapio () naudojimas filtre ():


Kai naudojate žemėlapio () funkciją filtro () funkcijoje, kartotines versijas pirmiausia valdo žemėlapio funkcija, o tada joms taikoma filtro () sąlyga.

PAVYZDYS:

c = filtras (lambda x: (x> = 3), žemėlapis (lambda x: x + x, (1,2,3,4))) #lambda x: (x> = 3) spausdinti (sąrašas (c) )

IŠĖJIMAS: [4, 6, 8]

Žemėlapio () ir filtro () naudojimas redukcijos () ribose:

Vidinių funkcijų išvestis sumažinama atsižvelgiant į sąlygą, pateiktą funkcijai sumažinti ().

PAVYZDYS:

d = sumažinti (lambda x, y: x + y, žemėlapis (lambda x: x + x, filtras (lambda x: (x> = 3), (1,2,3,4)))) spausdinti (d)

IŠĖJIMAS: 14

Išvestis yra [6,8] rezultatas, kuris yra vidinio žemėlapio () ir filtro () funkcijų rezultatas.

Tai pasiekėme šio žemėlapio (), filtro () ir „Python“ funkcijų sumažinimo pabaigos. Tikiuosi, kad viską supratote aiškiai. Įsitikinkite, kad praktikuojate kuo daugiau ir grąžinkite savo patirtį.

Turite mums klausimą? Prašau tai paminėti šio tinklaraščio „žemėlapis (), filtruoti () ir mažinti ()„ Python “funkcijos“) komentarų skyriuje, ir mes kuo greičiau susisieksime su jumis.

Norėdami gauti išsamių žinių apie „Python“ kartu su įvairiomis jo programomis, galite užsiregistruoti tiesiogiai su parą visą parą ir visą gyvenimą.