Dada a seguinte Lista de Scala:
val l = List(List("a1", "b1", "c1"), List("a2", "b2", "c2"), List("a3", "b3", "c3"))
Como posso obter:
List(("a1", "a2", "a3"), ("b1", "b2", "b3"), ("c1", "c2", "c3"))
Como zip só pode ser usado para combinar duas Listas, acho que você precisaria iterar / reduzir a Lista principal de alguma forma. Não é de surpreender que o seguinte não 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)
Alguma sugestão de como fazer isso? Acho que estou perdendo uma maneira muito simples de fazer isso.
Atualização: Estou procurando uma solução que pode pegar uma Lista de N Listas com M elementos cada e criar uma Lista de M TupleNs.
Atualização 2: Acontece que é melhor para meu caso de uso específico ter uma lista de listas, em vez de uma lista de tuplas, então estou aceitando a resposta do pumpkin. Também é o mais simples, pois usa um método nativo.