Учитывая следующий список 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 TupleN.
Обновление 2: как оказалось, для моего конкретного варианта использования лучше иметь список списков, а не список кортежей, поэтому я принимаю ответ тыквы. Это также самый простой способ, поскольку в нем используется собственный метод.