# Capire e usare la funzione map in Python

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

## Campi di applicazione 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](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/liste-in-python/ "Liste in Python") si tratta ad esempio anche delle [tuple in Python](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/tuple-in-python/ "Tuple in Python"). In sostanza la funzione map può essere utilizzata al posto di un [ciclo for in Python](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/ciclo-for-su-python/ "Ciclo for su Python"), che considera ogni elemento dell’iterabile. L’uso di map è utile soprattutto per **applicare la stessa identica funzione a ciascuno di questi elementi**. Potete poi passarlo alla funzione semplicemente come parametro.

## La sintassi di Python map

La sintassi della funzione map in Python non è complicata:

```python
map(function, iterable)
```

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 **restituisce un oggetto della classe map in Python** a cui è stato applicato la funzione da voi passata. Potete passare questo valore restituito a funzioni come list() o set() per lavorare con i dati.

## La funzione map in Python nella pratica

Per illustrare il comportamento della funzione ricorriamo a un esempio di codice:

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

Per prima cosa nella sezione di codice viene creata una funzione con il nome “incrementare” che riceve un numero e fa esattamente ciò che suggerisce il nome. Segue la creazione di una lista Python “numeri” che contiene le cifre da 0 a 4 compreso. La parte più avvincente è la chiamata di map: alla funzione vengono passati come primo parametro di trasferimento la funzione “incrementare” definita nel codice e come secondo parametro di trasferimento la lista “numeri”. Il risultato viene salvato nella variabile chiamata “risultato”.

Per poter continuare a lavorare con il risultato, nell’ultima riga del codice di esempio il risultato viene convertito in una lista. Osservando questa lista, ad esempio, con la funzione [print in Python](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/python-print/), noterete che tutti gli elementi della lista “numeri” passata a map sono stati incrementati di 1. Sullo schermo sarebbe quindi restituito quanto segue: “(1, 2, 3, 4, 5)”.

Consiglio Python è perfetto anche per i progetti web. Con [Deploy Now](https://www.ionos.it/hosting/deploy-now "Deploy Now di IONOS") di IONOS potete distribuire in modo facilissimo i vostri progetti web e compilarli automaticamente 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 espressione lambda**. Un’espressione lambda in Python è sostanzialmente una notazione breve di cui potete servirvi per usare una funzione come parametro di trasferimento. 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 riferimento ancora una volta all’esempio di codice della funzione map già spiegato, è possibile sostituire la funzione “incrementare” anche con un’espressione lambda, snellendo il codice:

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

Fondamentalmente non cambia nulla nel comportamento del codice. Solo la funzione “incrementare” è stata sostituita da un’espressione lambda introdotta dalla parola chiave “lambda”. Segue il parametro che altrimenti scrivereste nell’intestazione della funzione. Dopo i due punti potete specificare la restituzione dell’espressione lambda. Come potete vedere, grazie all’espressione 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 comprendere come si applica map a due iterabili:

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

Nell’esempio sopra, questa volta sono state create due liste chiamate “a” e “b”, che contengono tre numeri ciascuna. Per la chiamata di map si usa di nuovo una funzione anonima con un’espressione lambda. Ora però riceve due parametri x e y e restituisce la loro somma. Come ulteriori parametri passiamo entrambe le liste a map e riconvertiamo il risultato della chiamata di funzione in una lista. Il risultato è “(5, 7, 9)”, in quanto i numeri delle due liste sono stati parzialmente sommati.


This is a markdown version of: [https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/python-map/](https://www.ionos.it/digitalguide/siti-web/programmazione-del-sito-web/python-map/) for AI/LLM consumption.