Angesichts der folgenden Scala-Liste:
val l = List(List("a1", "b1", "c1"), List("a2", "b2", "c2"), List("a3", "b3", "c3"))
Wie bekomme ich:
List(("a1", "a2", "a3"), ("b1", "b2", "b3"), ("c1", "c2", "c3"))
Da zip nur zum Kombinieren von zwei Listen verwendet werden kann, müssten Sie die Hauptliste irgendwie iterieren / reduzieren. Es überrascht nicht, dass Folgendes nicht funktioniert:
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)
Irgendwelche Vorschläge, wie man das macht? Ich glaube, ich vermisse einen sehr einfachen Weg, dies zu tun.
Update: Ich suche nach einer Lösung, die eine Liste von N Listen mit jeweils M Elementen erstellt und eine Liste von M TupelNs erstellt.
Update 2: Wie sich herausstellt, ist es für meinen speziellen Anwendungsfall besser, eine Liste mit Listen zu haben, als eine Liste mit Tupeln. Daher akzeptiere ich die Antwort von Kürbis. Es ist auch das einfachste, da es eine native Methode verwendet.