Python nudi mnoge ugrađene funkcije koje su unaprijed definirane i koje krajnji korisnik može koristiti samo pozivanjem. Te funkcije ne samo da olakšavaju rad programera već i stvaraju standardno okruženje za kodiranje. U ovom ćete članku naučiti o tri tako impresivne funkcije, a to su map (), filtriranje i smanjenje () u .
Prije nego krenemo naprijed, pogledajmo sadržaj:
- Što su funkcije mapiranja, filtriranja i smanjenja u Pythonu?
- Korištenje korisnički definiranih i lambda funkcija unutar:
- Koristeći funkcije map (), filtrirajte () i reduce () zajedno
Pa krenimo. :)
Što su funkcije map (), filter () i reduce () u Pythonu?
Kao što je ranije spomenuto, ugrađeni su map (), filter () i reduce () Pythona. Te funkcije omogućuju funkcionalni programski aspekt . U funkcionalnom programiranju, prosljeđeni argumenti jedini su faktori koji odlučuju o rezultatu. Te funkcije mogu uzeti bilo koju drugu funkciju kao parametar, a mogu se isporučiti i drugim funkcijama kao parametre. Pa hajde da sada dublje pogledamo svaku od ovih funkcija.
Funkcija karte ():
Funkcija map () vrsta je višeg reda. Kao što je ranije spomenuto, ova funkcija uzima drugu funkciju kao parametar, zajedno sa slijedom iterabila i vraća izlaz nakon primjene funkcije na svaki iterabil prisutan u nizu. Njegova sintaksa je sljedeća:
SINTAKSA:
mapa (funkcija, iterables)
Ovdje funkcija definira izraz koji se pak primjenjuje na iterable. Funkcija karte može uzimati i korisnički definirane funkcije lambda funkcije kao parametar.
Korištenje korisnički definiranih i Lambda funkcija unutar:
Korisnički definirane funkcije unutar mape ():
Funkcija map () može uzeti kao parametre korisnički definirane funkcije. Parametre ovih funkcija postavlja isključivo korisnik ili programer. Na primjer:
PRIMJER:
def newfunc (a): vrati a * a x = map (newfunc, (1,2,3,4)) #x je objekt mape print (x) print (set (x))
IZLAZ:
koji su 6 načina korištenja ove ključne riječi
{16, 1, 4, 9}
Kao što vidite, x je objekt karte. Sljedeći dio prikazuje funkciju karte koja uzima newfunc () kao svoj parametar, a zatim primjenjuje a * a na sve iterable. Kao rezultat toga, vrijednosti svih iterabilnih elemenata množe se same po sebi i vraćaju.
BILJEŠKA: Izlaz nije u redu prema vrijednostima iterablea jer sam koristio funkciju set (). Također možete koristiti funkcije list () ili tuple (), na primjer:
PRIMJER:
def newfunc (a): vrati a * a x = map (newfunc, (1,2,3,4)) #x je objekt mape print (x) print (list (x))
IZLAZ:
[1, 4, 9, 16]
Možete proslijediti i više popisa parametara. Na primjer:
PRIMJER:
def func (a, b): vrati a + b a = map (func, [2, 4, 5], [1,2,3]) print (a) print (korice (a))
IZLAZ:
(3, 6, 8)
Sada da vidimo kako možete koristiti lambda funkcije unutar funkcije map ().
Lambda funkcije unutar karte ():
Lambda funkcije su funkcije koje imaju bilo koji naziv. Te se funkcije često isporučuju kao parametri drugim funkcijama. Pokušajmo sada ugraditi lambda funkcije u funkciju map (). Razmotrimo sljedeći primjer:
PRIMJER:
tup = (5, 7, 22, 97, 54, 62, 77, 23, 73, 61) newtuple = tuple (karta (lambda x: x + 3, tup)) print (newtuple)
IZLAZ:
(8, 10, 25, 100, 57, 65, 80, 26, 76, 64)
Gornji je rezultat rezultat primjene lambda izraza (x + 3) na svaku stavku prisutnu u korpici.
Funkcija filtra ():
Funkcija filter () koristi se za stvaranje izlaznog popisa koji se sastoji od vrijednosti za koje funkcija vraća true. Sintaksa je sljedeća:
SINTAKSA:
filtar (funkcija, iterables)
Baš kao i map (), i ova se funkcija može koristiti kao parametar i funkcije definirane od korisnika kao i lambda funkcije.
PRIMJER:
def func (x): ako je x> = 3: return x y = filter (func, (1,2,3,4)) print (y) print (popis (y))
IZLAZ:
[3. 4]
Kao što vidite, y je objekt filtra, a popis je popis vrijednosti koje vrijede za uvjet (x> = 3).
Korištenje lambde unutar filtra ():
Lambda funkcija koja se koristi kao parametar zapravo definira uvjet koji treba provjeriti. Na primjer:
PRIMJER:
y = filtar (lambda x: (x> = 3), (1,2,3,4)) ispis (popis (y))
IZLAZ: [3. 4]
Gornji kod daje isti izlaz kao i prethodna funkcija.
Funkcija smanjivanja ():
Funkcija reduce (), kako opisuje naziv, primjenjuje zadanu funkciju na iterable i vraća jednu vrijednost.
Sintaksa ove funkcije je sljedeća:
SINTAKSA:
smanjiti (funkcija, iterables)
Ovdje funkcija definira koji izraz treba primijeniti na iterable. Ovu funkciju treba uvesti iz functools-a modul . Na primjer:
PRIMJER:
pretvoriti decimalni u binarni python
iz functools uvoza smanjiti smanjiti (lambda a, b: a + b, [23,21,45,98])
IZLAZ: 187
U gore navedenom primjeru, funkcija reduciranja uzastopno dodaje svaki iterabil prisutan na popisu i vraća jedan izlaz.
Funkcije map (), filter () i reduce () u Pythonu mogu se koristiti međusobno.
Koristeći funkcije map (), filtrirajte () i reduce () zajedno:
Kada to učinite, prvo se rješavaju unutarnje funkcije, a zatim vanjske funkcije djeluju na izlazu unutarnjih funkcija.
Pokušajmo prvo proslijediti funkciju filter () kao parametar funkciji map ().
Korištenje filtra () unutar mape ():
Dolje navedeni kod prvo provjerava je li uvjet (x> = 3) istinit za iterable. Zatim se izlaz mapira pomoću funkcije map ().
PRIMJER:
c = karta (lambda x: x + x, filtriraj (lambda x: (x> = 3), (1,2,3,4))) ispis (popis (c))
IZLAZ: [6, 8]
Ako iz dane korpice filtrirate cijele brojeve veće ili jednake 3, kao rezultat dobit ćete [3,4]. Zatim, ako ovo mapirate pomoću (x + x) uvjeta, dobit ćete [6,8], što je rezultat.
Korištenje karte () unutar filtra ():
Kada koristite funkciju map () unutar funkcije filter (), iterabilima prvo upravlja funkcija karte, a zatim se na njih primjenjuje uvjet filtra ().
PRIMJER:
c = filtar (lambda x: (x> = 3), karta (lambda x: x + x, (1,2,3,4))) # lambda x: (x> = 3) ispis (popis (c) )
IZLAZ: [4, 6, 8]
Korištenje mape () i filtra () u okviru smanjenja ():
Izlaz internih funkcija smanjuje se u skladu s uvjetom koji se daje funkciji reduce ().
PRIMJER:
d = smanji (lambda x, y: x + y, mapa (lambda x: x + x, filtriraj (lambda x: (x> = 3), (1,2,3,4)))) ispis (d)
IZLAZ: 14
Izlaz je rezultat rada [6,8] koji je rezultat internih funkcija map () i filter ().
Ovim smo došli do kraja ovog članka na map (), filter () i reduciranju funkcija u Pythonu. Nadam se da ste sve jasno razumjeli. Obavezno vježbajte što je više moguće i vratite svoje iskustvo.
Imate pitanje za nas? Molimo vas da ga spominjete u odjeljku za komentare ovog bloga 'map (), filter () i reduce () funkcije u Pythonu', a mi ćemo vam se javiti što je prije moguće.
Da biste stekli detaljno znanje o Pythonu, zajedno s raznim aplikacijama, možete se prijaviti uživo s 24/7 podrškom i doživotnim pristupom.