2016-12-14 18 views
3

私は次のような構造のScalaのリストを持っている:リストのリストをスカラーで転置する方法は?

List(
    List(a1,b1,c1), 
    List(a2,b2,c2), 
    List(a3,b3,c3), 
    List(a4,b4,c4), 
    List(a5,b5,c5) 
) 

どのように私はScalaでこれを実現します:

val list = List(
    List(a1,a2,a3,a4,a5), 
    List(b1,b2,b3,b4,b5), 
    List(c1,c2,c3,c4,c5) 
) 

このリストからは、私は次のようになり、リストを生成したいですか?

答えて

7

このようなリストの数が固定されている場合は、zippedを使用してそれらをまとめてタプルにすることができます。あなたの例のように:

scala> (List(a1,a2,a3,a4), List(b1,b2,b3,b4), List(c1,c2,c3,c4)).zipped.toList 
List((a1,b1,c1),(a2,b2,c2),(a3,b3,c3),(a4,b4,c4)) 

あなた本当にあなたは上記の持っているもののフルパワーが必要な場合、それはリストのリストのちょうどtransposeです:

scala> List(List(a1,a2,a3,a4), List(b1,b2,b3,b4), List(c1,c2,c3,c4)).transpose 
List(List(a1,b1,c1),List(a2,b2,c2),List(a3,b3,c3),List(a4,b4,c4)) 
関連する問題