Biorąc pod uwagę następującą listę Scala:
val l = List(List("a1", "b1", "c1"), List("a2", "b2", "c2"), List("a3", "b3", "c3"))
Jak mogę zdobyć:
List(("a1", "a2", "a3"), ("b1", "b2", "b3"), ("c1", "c2", "c3"))
Ponieważ zip może być używany tylko do łączenia dwóch list, myślę, że musiałbyś jakoś powtórzyć / zmniejszyć główną listę. Nic dziwnego, że poniższe rozwiązania nie działają:
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)
Jakieś sugestie, jak to zrobić? Myślę, że brakuje mi bardzo prostego sposobu, aby to zrobić.
Aktualizacja: Szukam rozwiązania, które może wziąć Listę N List z M elementami każdy i utworzyć Listę M TupleNs.
Aktualizacja 2: Jak się okazuje, dla mojego konkretnego przypadku lepiej jest mieć listę list, a nie listę krotek, więc akceptuję odpowiedź dyni. Jest też najprostszy, ponieważ wykorzystuje metodę natywną.