Karta, filtrera och minska funktioner i Python: Allt du behöver veta



Lär dig vad som är map (), filter () och reducera () funktioner i Python. Vet också hur man använder dem med lambda och användardefinierade funktioner och tillsammans med varandra.

Python erbjuder många inbyggda funktioner som är fördefinierade och kan användas av slutanvändaren genom att bara ringa dem. Dessa funktioner underlättar inte bara programmers arbete utan skapar också en standardkodningsmiljö. I den här artikeln kommer du att lära dig om tre sådana imponerande funktioner, nämligen map (), filter and reduce () in .

Låt oss ta en titt på innehållet innan vi går vidare:





Så låt oss komma igång. :)

Vad är map (), filter () och reducera () funktioner i Python?

Som tidigare nämnts är map (), filter () och reducera () inbyggda av Python. Dessa funktioner möjliggör den funktionella programmeringsaspekten av . I funktionell programmering är argumenten som skickas de enda faktorerna som avgör resultatet. Dessa funktioner kan ta alla andra funktioner som en parameter och kan också levereras till andra funktioner som parametrar. Så låt oss nu ta en djupare titt på var och en av dessa funktioner.



Map () -funktionen:

Map () -funktionen är en typ av högre ordning. Som tidigare nämnts tar denna funktion en annan funktion som en parameter tillsammans med en sekvens av iterables och returnerar en utgång efter att ha tillämpat funktionen på varje iterabel som finns i sekvensen. Dess syntax är som följer:

SYNTAX:

karta (funktion, iterables)



Här definierar funktionen ett uttryck som i sin tur tillämpas på iterablesna. Kartfunktionen kan ta användardefinierade funktioner såväl som lambda-funktioner som en parameter.

Använda användardefinierade och Lambda-funktioner inom:

Användardefinierade funktioner inom kartan ():

Map () -funktionen kan ta användardefinierade funktioner som parametrar. Parametrarna för dessa funktioner ställs ut exklusivt av användaren eller programmeraren. Till exempel:

EXEMPEL:

def newfunc (a): returnera a * a x = karta (newfunc, (1,2,3,4)) #x är kartobjektets utskrift (x) print (set (x))

PRODUKTION:

{16, 1, 4, 9}

Som du kan se är x ett kartobjekt. Nästa delutdata visar kartfunktionen med newfunc () som sin parameter och sedan tillämpar den a * a på alla iterables. Som ett resultat multipliceras värdena för alla iterables med sig själva och returneras.

NOTERA: Utgången är inte i ordning efter värdena på iterablesna eftersom jag har använt set () -funktionen. Du kan också använda funktionerna list () eller tuple () till exempel:

EXEMPEL:

def newfunc (a): returnera en * a x = karta (newfunc, (1,2,3,4)) #x är kartobjektets utskrift (x) utskrift (lista (x))

PRODUKTION:

[1, 4, 9, 16]

Du kan också skicka mer än en lista med parametrar. Till exempel:

EXEMPEL:

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

PRODUKTION:

(3, 6, 8)

Låt oss nu se hur du kan använda lambda-funktioner inom kartfunktionen.

hur man använder google molnplattform

Lambda-funktioner inom kartan ():

Lambda-funktioner är funktioner som har något namn. Dessa funktioner levereras ofta som parametrar till andra funktioner. Låt oss nu försöka bädda in lambdafunktioner i kartfunktionen (). Tänk på följande exempel:

EXEMPEL:

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

PRODUKTION:

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

Ovanstående output är ett resultat av att lambdauttrycket (x + 3) tillämpas på varje objekt som finns i tupeln.

Funktionen filter ():

Funktionen filter () används för att skapa en utgångslista som består av värden som funktionen returnerar true. Syntaksen för den är som följer:

SYNTAX:

filter (funktion, iterables)

Precis som map () kan denna funktion användas kan också ta användardefinierade funktioner såväl som lambdafunktioner som en parameter.

EXEMPEL:

def func (x): om x> = 3: returnera x y = filter (func, (1,2,3,4)) skriv ut (y) skriv ut (lista (y))

PRODUKTION:

[3. 4]

Som du kan se är y filterobjektet och listan är en lista över värden som är sanna för villkoret (x> = 3).

Använda lambda i filter ():


Lambdafunktionen som används som parameter definierar faktiskt det tillstånd som ska kontrolleras. Till exempel:

EXEMPEL:

y = filter (lambda x: (x> = 3), (1,2,3,4)) tryck (lista (y))

PRODUKTION: [3. 4]

Ovanstående kod ger samma utgång som den föregående funktionen.

Funktionen reducera ():

Funktionen reducera (), som namnet beskriver, tillämpar en given funktion på iterablesna och returnerar ett enda värde.

minska-karta minska filter-edureka

Syntaxen för denna funktion är som följer:

SYNTAX:

reducera (funktion, iterables)

Funktionen här definierar vilket uttryck som behöver tillämpas på iterablesna. Denna funktion måste importeras från funktionsverktygen modul . Till exempel:

EXEMPEL:

från funktools import reducera reducera (lambda a, b: a + b, [23,21,45,98])

PRODUKTION: 187

c ++ sorteringsalgoritm

I ovanstående exempel lägger reduceringsfunktionen i följd till varje iterabel som finns i listan och returnerar en enda utdata.

Kartan (), filter () och reducera () funktioner i Python kan användas tillsammans med varandra.

Använd kartan (), filtrera () och minska () -funktionerna tillsammans med varandra:

När du gör detta löses de interna funktionerna först och sedan fungerar de yttre funktionerna på utgången från de interna funktionerna.

Låt oss först försöka skicka filter () -funktionen som en parameter till kartfunktionen.

Använda filter () på kartan ():

Koden som ges nedan kontrollerar först om villkoret (x> = 3) är sant för iterablesna. Därefter mappas utdata med funktionen map ().

EXEMPEL:

c = karta (lambda x: x + x, filter (lambda x: (x> = 3), (1,2,3,4))) tryck (lista (c))

PRODUKTION: [6, 8]

Om du filtrerar bort heltal större än eller lika med 3 från den givna tupeln får du [3,4] som resultat. Om du sedan kartlägger detta med (x + x) villkor får du [6,8], vilket är utdata.

Använda karta () i filter ():


När du använder map () -funktionen inom filter () -funktionen, hanteras iterablesna först av kartfunktionen och sedan tillämpas filter () -tillståndet på dem.

EXEMPEL:

c = filter (lambda x: (x> = 3), karta (lambda x: x + x, (1,2,3,4))) #lambda x: (x> = 3) tryck (lista (c) )

PRODUKTION: [4, 6, 8]

Använda karta () och filter () inom reducera ():

Utgången från de interna funktionerna reduceras i enlighet med det skick som ges till reducera () -funktionen.

EXEMPEL:

d = reducera (lambda x, y: x + y, karta (lambda x: x + x, filter (lambda x: (x> = 3), (1,2,3,4)))) tryck (d)

PRODUKTION: 14

Utgången är ett resultat av [6,8] vilket är resultatet av den interna kartan () och filter ().

Med detta har vi nått slutet på den här artikeln på karta (), filter () och reducera funktioner i Python. Jag hoppas att du har förstått allt klart. Se till att du tränar så mycket som möjligt och återgår till din upplevelse.

Har du en fråga till oss? Vänligen nämna det i kommentarsektionen i denna “map (), filter () och reducera () -funktioner i Python” -bloggen så kommer vi tillbaka så snart som möjligt.

För att få fördjupad kunskap om Python tillsammans med dess olika applikationer kan du registrera dig för live med 24/7 support och livstidsåtkomst.