La funzione map integrata in Python serve per applicare una funzione a tutti gli elementi di un iterabile.

Campi di ap­pli­ca­zio­ne della funzione map in Python

In Python la funzione map è un modo elegante per elaborare contenuti dagli iterabili. Gli iterabili sono oggetti Python sui quali potete iterare. Oltre alle liste in Python si tratta ad esempio anche delle tuple in Python. In sostanza la funzione map può essere uti­liz­za­ta al posto di un ciclo for in Python, che considera ogni elemento dell’iterabile. L’uso di map è utile so­prat­tut­to per applicare la stessa identica funzione a ciascuno di questi elementi. Potete poi passarlo alla funzione sem­pli­ce­men­te come parametro.

La sintassi di Python map

La sintassi della funzione map in Python non è com­pli­ca­ta:

map(function, iterable)
python

Come potete vedere nell’esempio di codice, la funzione riceve due parametri. Il primo parametro descrive la funzione che deve essere applicata a ciascun elemento del vostro iterabile. Il secondo è questo stesso iterabile sul quale intendete iterare. La funzione re­sti­tui­sce un oggetto della classe map in Python a cui è stato applicato la funzione da voi passata. Potete passare questo valore re­sti­tui­to a funzioni come list() o set() per lavorare con i dati.

La funzione map in Python nella pratica

Per il­lu­stra­re il com­por­ta­men­to della funzione ri­cor­ria­mo a un esempio di codice:

def incrementare(n):
	return n + 1
numeri = (0, 1, 2, 3, 4)
risultato = map(incrementare, numeri)
risultato_lista = list(risultato)
python

Per prima cosa nella sezione di codice viene creata una funzione con il nome “in­cre­men­ta­re” che riceve un numero e fa esat­ta­men­te ciò che sug­ge­ri­sce il nome. Segue la creazione di una lista Python “numeri” che contiene le cifre da 0 a 4 compreso. La parte più av­vin­cen­te è la chiamata di map: alla funzione vengono passati come primo parametro di tra­sfe­ri­men­to la funzione “in­cre­men­ta­re” definita nel codice e come secondo parametro di tra­sfe­ri­men­to la lista “numeri”. Il risultato viene salvato nella variabile chiamata “risultato”.

Per poter con­ti­nua­re a lavorare con il risultato, nell’ultima riga del codice di esempio il risultato viene con­ver­ti­to in una lista. Os­ser­van­do questa lista, ad esempio, con la funzione print in Python, noterete che tutti gli elementi della lista “numeri” passata a map sono stati in­cre­men­ta­ti di 1. Sullo schermo sarebbe quindi re­sti­tui­to quanto segue: “(1, 2, 3, 4, 5)”.

Consiglio

Python è perfetto anche per i progetti web. Con Deploy Now di IONOS potete di­stri­bui­re in modo fa­ci­lis­si­mo i vostri progetti web e com­pi­lar­li au­to­ma­ti­ca­men­te tramite GitHub.

Python map con le funzioni lambda

Se le funzioni che passate a map sono solo funzioni che volete definire per gli elementi del vostro iterabile, può essere utile passare la funzione a map come espres­sio­ne lambda. Un’espres­sio­ne lambda in Python è so­stan­zial­men­te una notazione breve di cui potete servirvi per usare una funzione come parametro di tra­sfe­ri­men­to. Poiché le funzioni così definite non hanno un proprio nome e non possono essere chiamate altrove nel codice, si parla anche di funzioni anonime.

Facendo ri­fe­ri­men­to ancora una volta all’esempio di codice della funzione map già spiegato, è possibile so­sti­tui­re la funzione “in­cre­men­ta­re” anche con un’espres­sio­ne lambda, snellendo il codice:

numeri = (0, 1, 2, 3, 4)
risultato = map(lambda n: n + 1, numeri)
risultato_lista = list(risultato)
python

Fon­da­men­tal­men­te non cambia nulla nel com­por­ta­men­to del codice. Solo la funzione “in­cre­men­ta­re” è stata so­sti­tui­ta da un’espres­sio­ne lambda in­tro­dot­ta dalla parola chiave “lambda”. Segue il parametro che al­tri­men­ti scri­ve­re­ste nell’in­te­sta­zio­ne della funzione. Dopo i due punti potete spe­ci­fi­ca­re la re­sti­tu­zio­ne dell’espres­sio­ne lambda. Come potete vedere, grazie all’espres­sio­ne lambda questa variante del codice è molto più corta.

Passare più iterabili a map in Python

Se volete elaborare due iterabili, potete usare anche la funzione map in Python. Un esempio aiuta a com­pren­de­re come si applica map a due iterabili:

a = (2, 3, 4)
b = (3, 4, 5)
risultato = map(lambda x, y: x + y, a, b)
risultato_lista = list(risultato)
python

Nell’esempio sopra, questa volta sono state create due liste chiamate “a” e “b”, che con­ten­go­no tre numeri ciascuna. Per la chiamata di map si usa di nuovo una funzione anonima con un’espres­sio­ne lambda. Ora però riceve due parametri x e y e re­sti­tui­sce la loro somma. Come ulteriori parametri passiamo entrambe le liste a map e ri­con­ver­tia­mo il risultato della chiamata di funzione in una lista. Il risultato è “(5, 7, 9)”, in quanto i numeri delle due liste sono stati par­zial­men­te sommati.

Vai al menu prin­ci­pa­le