次の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は2つのリストを組み合わせるためにのみ使用できるので、メインリストを何とか反復/削減する必要があると思います。当然のことながら、以下は機能しません。
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)
これを行う方法の提案はありますか?私はそれを行う非常に簡単な方法が欠けていると思います。
更新:それぞれM要素のNリストのリストを取得し、MタプルNのリストを作成できるソリューションを探しています。
更新2:結局のところ、私の特定のユースケースでは、タプルのリストではなくリストのリストを使用する方が良いため、カボチャの応答を受け入れます。また、ネイティブメソッドを使用するため、最も単純です。