Funzioni di mappatura, filtro e riduzione in Python: tutto ciò che devi sapere



Scopri cosa sono le funzioni map (), filter () e reduce () in Python. Sapere anche come usarli con lambda e funzioni definite dall'utente e insieme tra loro.

Python fornisce molte funzioni integrate che sono predefinite e possono essere utilizzate dall'utente finale semplicemente chiamandole. Queste funzioni non solo facilitano il lavoro dei programmatori, ma creano anche un ambiente di codifica standard. In questo articolo imparerai tre funzioni così impressionanti: map (), filter e reduce () in .

Prima di andare avanti, diamo uno sguardo ai contenuti:





Quindi iniziamo. :)

Cosa sono le funzioni map (), filter () e reduce () in Python?

Come accennato in precedenza, map (), filter () e reduce () sono incorporati di Python. Queste funzioni abilitano l'aspetto della programmazione funzionale di . Nella programmazione funzionale, gli argomenti passati sono gli unici fattori che decidono sull'output. Queste funzioni possono assumere qualsiasi altra funzione come parametro e possono essere fornite anche ad altre funzioni come parametri. Quindi diamo ora uno sguardo più approfondito a ciascuna di queste funzioni.



La funzione map ():

La funzione map () è un tipo di ordine superiore. Come accennato in precedenza, questa funzione accetta un'altra funzione come parametro insieme a una sequenza di iterabili e restituisce un output dopo aver applicato la funzione a ogni iterabile presente nella sequenza. La sua sintassi è la seguente:

SINTASSI:

map (funzione, iterabili)



Qui, la funzione definisce un'espressione che a sua volta viene applicata agli iterabili. La funzione map può accettare anche funzioni definite dall'utente funzioni lambda come parametro.

Utilizzo delle funzioni definite dall'utente e Lambda all'interno di:

Funzioni definite dall'utente all'interno di map ():

La funzione map () può accettare funzioni definite dall'utente come parametri. I parametri di queste funzioni sono impostati esclusivamente dall'utente o dal programmatore. Per esempio:

ESEMPIO:

def newfunc (a): return a * a x = map (newfunc, (1,2,3,4)) #x è l'oggetto mappa print (x) print (set (x))

PRODUZIONE:

{16, 1, 4, 9}

Come puoi vedere, x è un oggetto mappa. L'output della parte successiva mostra la funzione map prendendo newfunc () come parametro e quindi applica a * a tutti gli iterabili. Di conseguenza, i valori di tutti gli iterabili vengono moltiplicati per se stessi e restituiti.

NOTA: L'output non è in ordine dei valori degli iterabili perché ho utilizzato la funzione set (). Puoi anche usare le funzioni list () o tuple () ad esempio:

ESEMPIO:

def newfunc (a): return a * a x = map (newfunc, (1,2,3,4)) #x è l'oggetto mappa print (x) print (list (x))

PRODUZIONE:

[1, 4, 9, 16]

Puoi anche passare più di un elenco di parametri. Per esempio:

ESEMPIO:

def func (a, b): restituisce a + b a = map (func, [2, 4, 5], [1,2,3]) print (a) print (tupla (a))

PRODUZIONE:

(3, 6, 8)

Ora vediamo come puoi usare funzioni lambda all'interno della funzione map ().

Funzioni lambda all'interno di map ():

Le funzioni Lambda sono funzioni che hanno un nome qualsiasi. Queste funzioni sono spesso fornite come parametri ad altre funzioni. Ora proviamo a incorporare le funzioni lambda all'interno della funzione map (). Considera il seguente esempio:

ESEMPIO:

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

PRODUZIONE:

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

L'output precedente è il risultato dell'applicazione dell'espressione lambda (x + 3) a ogni elemento presente nella tupla.

La funzione filter ():

La funzione filter () viene utilizzata per creare un elenco di output costituito da valori per i quali la funzione restituisce true. La sintassi è la seguente:

SINTASSI:

filtro (funzione, iterabili)

Proprio come map (), questa funzione può essere utilizzata e può anche assumere funzioni definite dall'utente e funzioni lambda come parametro.

ESEMPIO:

def func (x): if x> = 3: return x y = filter (func, (1,2,3,4)) print (y) print (list (y))

PRODUZIONE:

[3. 4]

Come puoi vedere, y è l'oggetto filtro e l'elenco è un elenco di valori che sono veri per la condizione (x> = 3).

Utilizzando lambda all'interno di filter ():


La funzione lambda utilizzata come parametro definisce effettivamente la condizione da verificare. Per esempio:

ESEMPIO:

y = filtro (lambda x: (x> = 3), (1,2,3,4)) print (list (y))

PRODUZIONE: [3. 4]

Il codice precedente produce lo stesso output della funzione precedente.

La funzione reduce ():

La funzione reduce (), come descrive il nome, applica una data funzione agli iterabili e restituisce un singolo valore.

reduce-map reduce filter-edureka

La sintassi di questa funzione è la seguente:

SINTASSI:

reduce (funzione, iterabili)

La funzione qui definisce quale espressione deve essere applicata agli iterabili. Questa funzione deve essere importata dai functools modulo . Per esempio:

ESEMPIO:

from functools import reduce reduce (lambda a, b: a + b, [23,21,45,98])

PRODUZIONE: 187

Nell'esempio precedente, la funzione reduce aggiunge consecutivamente ogni iterabile presente nell'elenco e restituisce un singolo output.

Le funzioni map (), filter () e reduce () in Python possono essere usate insieme.

Usando le funzioni map (), filter () e reduce () insieme:

Quando si esegue questa operazione, le funzioni interne vengono prima risolte e quindi le funzioni esterne operano sull'uscita delle funzioni interne.

Proviamo prima a passare la funzione filter () come parametro alla funzione map ().

Utilizzando filter () all'interno di map ():

Il codice fornito di seguito verifica prima che la condizione (x> = 3) sia vera per gli iterabili. Quindi, l'output viene mappato utilizzando la funzione map ().

ESEMPIO:

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

PRODUZIONE: [6, 8]

Se filtri i numeri interi maggiori o uguali a 3 dalla tupla data, ottieni [3,4] come risultato. Quindi se si mappa questo utilizzando la condizione (x + x), si otterrà [6,8], che è l'output.

Utilizzando map () all'interno di filter ():


Quando si utilizza la funzione map () all'interno della funzione filter (), gli iterabili vengono prima gestiti dalla funzione map e quindi viene applicata la condizione di filter ().

ESEMPIO:

cos'è char in java
c = filtro (lambda x: (x> = 3), map (lambda x: x + x, (1,2,3,4))) #lambda x: (x> = 3) print (list (c) )

PRODUZIONE: [4, 6, 8]

Utilizzando map () e filter () all'interno di reduce ():

L'output delle funzioni interne viene ridotto in base alla condizione fornita alla funzione reduce ().

ESEMPIO:

d = riduci (lambda x, y: x + y, map (lambda x: x + x, filtro (lambda x: (x> = 3), (1,2,3,4)))) print (d)

PRODUZIONE: 14

L'output è il risultato di [6,8] che è il risultato delle funzioni interne map () e filter ().

Con questo, siamo arrivati ​​alla fine di questo articolo sulle funzioni map (), filter () e reduce in Python. Spero che tu abbia capito tutto chiaramente. Assicurati di esercitarti il ​​più possibile e di ripristinare la tua esperienza.

Hai domande per noi? Si prega di menzionarlo nella sezione commenti di questo blog “Funzioni map (), filter () e reduce () in Python” e vi risponderemo il prima possibile.

Per ottenere una conoscenza approfondita di Python e delle sue varie applicazioni, puoi iscriverti a live con supporto 24 ore su 24, 7 giorni su 7 e accesso a vita.