Учитывая следующий Scala Список:
val l = List(List("a1", "b1", "c1"), List("a2", "b2", "c2"), List("a3", "b3", "c3"))
Как я могу получить:
List(("a1", "a2", "a3"), ("b1", "b2", "b3"), ("c1", "c2", "c3"))
Так как zip можно использовать только для объединения двух списков, я думаю, вам нужно будет как-то перебрать/уменьшить основной список. Неудивительно, что следующее не работает:
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)
Любые предложения, как это сделать? Я думаю, что мне не хватает очень простого способа сделать это.
Обновление: Я ищу решение, которое может принимать список из N списков с элементами M каждый и создавать список из M TupleNs.
Обновление 2:. Как оказалось, для моего конкретного случая использования лучше иметь список списков, а не список кортежей, поэтому я принимаю реакцию тыквы. Это также самый простой, поскольку он использует собственный метод.