Dato il seguente elenco Scala:
val l = List(List("a1", "b1", "c1"), List("a2", "b2", "c2"), List("a3", "b3", "c3"))
Come posso avere:
List(("a1", "a2", "a3"), ("b1", "b2", "b3"), ("c1", "c2", "c3"))
Poiché zip può essere utilizzato solo per combinare due elenchi, penso che dovresti iterare / ridurre in qualche modo l'elenco principale. Non sorprende che quanto segue non funzioni:
scala> l reduceLeft ((a, b) => a zip b)
<console>:6: error: type mismatch;
found : List[(String, String)]
required: List[String]
l reduceLeft ((a, b) => a zip b)
Qualche suggerimento su come farlo? Penso che mi manchi un modo molto semplice per farlo.
Aggiornamento: sto cercando una soluzione che possa prendere un elenco di N elenchi con M elementi ciascuno e creare un elenco di M TupleN.
Aggiornamento 2: a quanto pare è meglio per il mio caso d'uso specifico avere un elenco di elenchi, piuttosto che un elenco di tuple, quindi accetto la risposta di Pumpkin. È anche il più semplice, poiché utilizza un metodo nativo.