Come utilizzare la funzione map() in Python
Scopri come utilizzare la funzione map() di Python. Padroneggia l'applicazione di funzioni agli iterabili senza scrivere cicli e confronta la mappa con la comprensione dell'elenco.
Panoramica
Quando elabori raccolte di dati, spesso dovrai applicare una trasformazione specifica a ogni singolo elemento in un iterabile. Ad esempio, convertire un elenco di numeri di stringa in numeri interi o normalizzare un array di stringhe del database convertendoli in lettere minuscole. Invece di scrivere cicli "for" dettagliati, Python fornisce uno strumento integrato chiamato "map()".
La funzione `map(function, iterable)` accetta una funzione di trasformazione e un iterabile come argomenti. Applica la funzione a ciascun elemento dell'iterabile e restituisce un oggetto iteratore (un oggetto `mappa`). Poiché viene restituito come iteratore, i calcoli vengono eseguiti pigramente: gli elementi vengono elaborati solo mentre si esegue l'iterazione su di essi, il che consente di risparmiare memoria per set di dati di grandi dimensioni.
Per ottenere immediatamente una rappresentazione di lista dell'oggetto mappa, è necessario eseguire il cast del risultato utilizzando il costruttore `list()`: `list(map(func, data))`. Puoi passare qualsiasi funzione standard, funzione della libreria standard (come `str` o `len`) o funzioni anonime personalizzate dichiarate con la parola chiave `lambda` direttamente a `map()` per l'esecuzione in linea.
Codice e output di esecuzione
Questo script illustra la modifica delle raccolte utilizzando la funzione map() con trasformazioni di stringhe, mappando gli elementi dell'elenco in numeri e utilizzando i callback lambda.
# 1. Map string conversion over a list of numbers
numbers = [1, 2, 3, 4]
string_numbers = list(map(str, numbers))
print("Mapped to strings:", string_numbers)
# 2. Square numbers using a lambda function inside map()
squared = list(map(lambda x: x**2, numbers))
print("Squared numbers:", squared)
# 3. Apply custom logic function to items
def normalize_name(name):
return name.strip().capitalize()
names = [" alice", "BOB ", " charlie "]
clean_names = list(map(normalize_name, names))
print("Clean names list:", clean_names)Mapped to strings: ['1', '2', '3', '4']
Squared numbers: [1, 4, 9, 16]
Clean names list: ['Alice', 'Bob', 'Charlie']Implementazione passo dopo passo
- Identifica la funzione di trasformazione che desideri applicare a ogni elemento della raccolta.
- Chiama map(function_name, iterable) per creare un iteratore pigro di elementi trasformati.
- Avvolgi la chiamata map() all'interno di list() se hai bisogno di accedere immediatamente a tutti gli elementi come un elenco standard.
- Combina map() con le funzioni lambda per trasformazioni in linea rapide e una tantum.
Domande frequenti
map() è migliore delle comprensioni delle liste?
Le comprensioni delle liste sono generalmente considerate più leggibili e pitoniche dalla comunità. Tuttavia, map() può essere più veloce quando si applica una funzione integrata esistente (come map(str, list)) perché esegue cicli di codice C ottimizzati.
map() può accettare più iterabili?
Sì! Se la funzione di trasformazione accetta più argomenti, puoi passare più iterabili a map(). Ad esempio, map(lambda x, y: x + y, list1, list2) aggiungerà elementi a coppie.
Argomenti correlati
Scopri come utilizzare le funzioni lambda in Python. Padroneggia funzioni anonime, callback in linea e dati di elenchi di ordinamento con chiavi lambda.
Come utilizzare la comprensione delle liste in PythonScopri come utilizzare la comprensione delle liste in Python. Scrivi loop concisi, applica filtri condizionali e crea matrici con una sintassi visiva pulita.
Come utilizzare la funzione filter() in PythonScopri come utilizzare la funzione filter() di Python per estrarre elementi dalle raccolte. Confronta il filtro con le comprensioni degli elenchi e i callback lambda.
Risorse Python consigliate
Espandi le tue conoscenze con tutorial interattivi, foglietti illustrativi e confronti di codici correlati.
Funzioni Python
Padroneggiare le funzioni Python. Scopri come scrivere codice riutilizzabile utilizzando def, definire argomenti, restituire valori e comprendere l'ambito a livello locale e globale.
Foglio informativo sulle funzioni del modulo matematico Python
Guida di riferimento rapido per la libreria standard matematica di Python. Impara come utilizzare le funzioni trigonometriche, logaritmiche, di arrotondamento e aritmetiche.
Python vs JavaScript: quale linguaggio di programmazione è il migliore?
Un confronto completo tra Python e JavaScript. Esplora le differenze di sintassi, le prestazioni, i casi d'uso (backend e frontend) ed esempi di codifica.