Dada la siguiente lista de Scala:
val l = List(List("a1", "b1", "c1"), List("a2", "b2", "c2"), List("a3", "b3", "c3"))
Como puedo conseguir:
List(("a1", "a2", "a3"), ("b1", "b2", "b3"), ("c1", "c2", "c3"))
Dado que zip solo se puede usar para combinar dos Listas, creo que necesitaría iterar / reducir la Lista principal de alguna manera. No es de extrañar que lo siguiente no funcione:
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)
¿Alguna sugerencia de cómo hacer esto? Creo que me falta una forma muy sencilla de hacerlo.
Actualización: Estoy buscando una solución que pueda tomar una Lista de N Listas con M elementos cada una y crear una Lista de M TupleN.
Actualización 2: resulta que es mejor para mi caso de uso específico tener una lista de listas, en lugar de una lista de tuplas, por lo que acepto la respuesta de calabaza. También es el más simple, ya que utiliza un método nativo.