map(function, iterable, ...)
Applica la funzione a ogni elemento di iterabile e restituisce un elenco dei risultati. Se vengono passati altri argomenti iterabili, la funzione deve prendere tanti argomenti e viene applicata agli elementi da tutti gli iterabili in parallelo.
Se un iterabile è più corto di un altro, si presume che sia esteso con Nessuno.
Se la funzione è None
, si assume la funzione identità; se sono presenti più argomenti, map()
restituisce un elenco composto da tuple contenenti gli elementi corrispondenti da tutti gli iterabili (una sorta di operazione di trasposizione).
Gli argomenti iterabili possono essere una sequenza o qualsiasi oggetto iterabile; il risultato è sempre un elenco.
Che ruolo gioca nella realizzazione di un prodotto cartesiano?
content = map(tuple, array)
Che effetto ha mettere una tupla ovunque lì dentro? Ho anche notato che senza la funzione mappa l'output è abc
e con esso lo è a, b, c
.
Voglio comprendere appieno questa funzione. Anche le definizioni di riferimento sono difficili da capire. Troppa lanugine di fantasia.
map(None, a, b, c)
risulta da fare zip(a, b, c)
. Ma molto raramente lo vedi in pratica, proprio perché la zip
chiamata è equivalente.
tuple
è una funzione (beh, è più sfumata di così, ma si comporta come una funzione) che prende un iterabile e ti dà una tupla con gli stessi elementi - quindi tuple([1, 2, 3])
equivale a (1, 2, 3)
. Perché map(tuple, array)
, array
sarebbe un iterabile di iterabili (pensa a un elenco di elenchi) e ti restituirà ogni elenco interno trasformato in una tupla.
map
?