Funkciju kartēšana, filtrēšana un samazināšana Python: viss, kas jums jāzina



Uzziniet, kādas ir kartes (), filtru () un samazināšanas () funkcijas Python. Arī zināt, kā tos izmantot ar lambda un lietotāja noteiktām funkcijām, kā arī viens ar otru.

Python nodrošina daudzas iebūvētas funkcijas, kuras ir iepriekš noteiktas un kuras galalietotājs var izmantot, vienkārši izsaucot viņus. Šīs funkcijas ne tikai atvieglo programmētāju darbu, bet arī rada standarta kodēšanas vidi. Šajā rakstā jūs uzzināsiet par trim šādām iespaidīgām funkcijām, proti, map (), filtrēšanu un samazināšanu () .

Pirms virzīties uz priekšu, apskatīsim saturu:





Tātad sāksim. :)

kā inicializēt klasi pitonā

Kas ir map (), filter () un reduc () funkcijas Python?

Kā minēts iepriekš, map (), filter () un reduc () ir iebūvēti no Python. Šīs funkcijas ļauj funkcionāli programmēt aspektu . Funkcionālajā programmēšanā pieņemtie argumenti ir vienīgie faktori, kas izlemj par rezultātu. Šīs funkcijas var izmantot jebkuru citu funkciju kā parametru, un tās var piegādāt arī citām funkcijām kā parametriem. Tāpēc tagad apskatīsim katru no šīm funkcijām dziļāk.



Kartes () funkcija:

Funkcija map () ir augstākas kārtas veids. Kā minēts iepriekš, šī funkcija kā parametru kopā ar atkārtojamo secību ņem citu funkciju un atgriež izvadi pēc funkcijas pielietošanas katrai secībā esošajai iterējamai funkcijai. Tās sintakse ir šāda:

Sintakse:

karte (funkcija, atkārtojamie faili)



Šeit funkcija nosaka izteiksmi, kas savukārt tiek piemērota atkārtojamām versijām. Kartes funkcija var izmantot arī lietotāja definētas funkcijas lambda funkcijas kā parametru.

Lietotāja definētu un Lambda funkciju izmantošana:

Lietotāja noteiktas funkcijas kartē ():

Funkcija map () var izmantot lietotāja definētas funkcijas kā parametrus. Šo funkciju parametrus nosaka tikai lietotājs vai programmētājs. Piemēram:

PIEMĒRS:

def newfunc (a): atgriež a * a x = karte (newfunc, (1,2,3,4)) #x ir kartes objekta drukas (x) druka (kopa (x))

REZULTĀTS:

{16, 1, 4, 9}

Kā redzat, x ir kartes objekts. Nākamās daļas izvadē tiek parādīta kartes funkcija, kuras parametram tiek izmantots newfunc (), un pēc tam tā visām * atkārtojamām vienībām piemēro a * a. Rezultātā visu atkārtojamo vērtību vērtības tiek reizinātas ar sevi un atgrieztas.

PIEZĪME: Izeja nav sakārtota pēc atkārtojamo vērtību vērtības, jo esmu izmantojis funkciju set (). Varat arī izmantot saraksta () vai tuple () funkcijas, piemēram:

PIEMĒRS:

def newfunc (a): atgriež a * a x = karte (newfunc, (1,2,3,4)) #x ir kartes objekta drukas (x) druka (saraksts (x))

REZULTĀTS:

[1, 4, 9, 16]

Var nodot arī vairākus parametru sarakstus. Piemēram:

PIEMĒRS:

def func (a, b): atgriež a + b a = karte (func, [2, 4, 5], [1,2,3]) print (a) print (tuple (a))

REZULTĀTS:

(3, 6, 8)

Tagad ļaujiet mums uzzināt, kā jūs varat izmantot lambda funkcijas funkcijas mapē ().

Lambda funkcijas kartē ():

Lambda funkcijas ir funkcijas, kurām patiešām ir jebkurš nosaukums. Šīs funkcijas bieži tiek piegādātas kā parametri citām funkcijām. Tagad mēģināsim iegult lambda funkcijas map () funkcijā. Apsveriet šādu piemēru:

PIEMĒRS:

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

REZULTĀTS:

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

Iepriekš minētā izeja ir rezultāts, izmantojot lambda izteiksmi (x + 3) katram vienumam, kas atrodas dubultā.

Filtra () funkcija:

Funkcija filter () tiek izmantota, lai izveidotu izvades sarakstu, kas sastāv no vērtībām, kurām funkcija atgriež patieso vērtību. Tās sintakse ir šāda:

Sintakse:

filtrs (funkcija, atkārtojamie faili)

Tāpat kā karti (), arī šo funkciju var izmantot kā lietotāja parametrus, kā arī lambda funkcijas.

PIEMĒRS:

kas ir žetoni java
def func (x): ja x> = 3: atgriež x y = filtrs (func, (1,2,3,4)) print (y) print (saraksts (y))

REZULTĀTS:

[3. 4]

Kā redzat, y ir filtra objekts un saraksts ir nosacījumu (x> = 3) patieso vērtību saraksts.

Izmantojot lambda filtrā ():


Funkcija lambda, kas tiek izmantota kā parametrs, faktiski nosaka pārbaudāmo nosacījumu. Piemēram:

PIEMĒRS:

y = filtrs (lambda x: (x> = 3), (1,2,3,4)) drukāt (saraksts (y))

REZULTĀTS: [3. 4]

Iepriekš minētais kods rada tādu pašu izvadi kā iepriekšējā funkcija.

Funkcija reducēt ():

Funkcija reduc (), kā aprakstīts nosaukumā, pielieto noteiktu funkciju atkārtojamām versijām un atgriež vienu vērtību.

samazināt-karte samazināt filtru-edureka

Šīs funkcijas sintakse ir šāda:

Sintakse:

samazināt (funkcija, atkārtojamie skaitļi)

Funkcija šeit nosaka, kāda izteiksme jāpielieto atkārtojamām versijām. Šī funkcija ir jāimportē no functools modulis . Piemēram:

PIEMĒRS:

no functools importa samazināšanas samazinājums (lambda a, b: a + b, [23,21,45,98])

REZULTĀTS: 187

Iepriekš minētajā piemērā reducēšanas funkcija secīgi pievieno katru atkārtojamo sarakstu un atgriež vienu izvadi.

Kartes (), filtrs () un samazināšanas () funkcijas Python var izmantot kopā.

Izmantojot kartes (), filtrējiet () un samaziniet () funkcijas kopā:

To darot, vispirms tiek atrisinātas iekšējās funkcijas, un pēc tam ārējās funkcijas darbojas uz iekšējo funkciju izvades.

Vispirms mēģināsim nodot funkciju filter () kā parametru funkcijai map ().

Izmantojot filtru () kartē ():

Tālāk dotais kods vispirms pārbauda, ​​vai nosacījums (x> = 3) atbilst patiesībai iterācijām. Pēc tam izeja tiek kartēta, izmantojot funkciju map ().

PIEMĒRS:

c = karte (lambda x: x + x, filtrs (lambda x: (x> = 3), (1,2,3,4))) druka (saraksts (c))

REZULTĀTS: [6, 8]

Ja filtrējat veselos skaitļus, kas ir lielāki vai vienādi ar 3 no dotā pāra, rezultāts ir [3,4]. Tad, ja jūs to kartēsit, izmantojot (x + x) nosacījumu, iegūsiet [6,8], kas ir izeja.

java kārtot veselu skaitļu masīvu sarakstu

Izmantojot karti () filtrā ():


Izmantojot funkciju map () filtrā (), iterācijas vispirms darbina ar kartes funkciju, un pēc tam tām tiek piemērots filtra () nosacījums.

PIEMĒRS:

c = filtrs (lambda x: (x> = 3), karte (lambda x: x + x, (1,2,3,4))) #lambda x: (x> = 3) drukāt (saraksts (c) )

REZULTĀTS: [4, 6, 8]

Izmantojot karti () un filtru () reducēšanas () robežās:

Iekšējo funkciju izeja tiek samazināta atbilstoši nosacījumam, kas tiek piegādāts funkcijai samazināt ().

PIEMĒRS:

d = samazināt (lambda x, y: x + y, karte (lambda x: x + x, filtrs (lambda x: (x> = 3), (1,2,3,4)))) drukāt (d)

REZULTĀTS: 14

Rezultāts ir rezultāts [6,8], kas ir iekšējās kartes () un filtra () funkciju rezultāts.

Ar to mēs esam nonākuši šī raksta beigās kartē (), filtrē () un samazina funkcijas Python. Es ceru, ka jūs visu esat skaidri sapratis. Pārliecinieties, ka pēc iespējas vairāk praktizējat, un atgriezieties savā pieredzē.

Vai mums ir jautājums? Lūdzu, pieminējiet to šī emuāra “karte (), filtrējiet () un samaziniet () funkcijas Python” komentāru sadaļā, un mēs pēc iespējas ātrāk sazināsimies ar jums.

Lai iegūtu padziļinātas zināšanas par Python kopā ar dažādām lietojumprogrammām, varat reģistrēties tiešraidē ar diennakts atbalstu un piekļuvi visu mūžu.