scala 2つList[Int]をList[(Int,Int)]にzipする

Pocket

zipを使う

scala> val a = List(1,2,3,4,5)
a: List[Int] = List(1, 2, 3, 4, 5)

scala> val b = List(10,20,50,60,10)
b: List[Int] = List(10, 20, 50, 60, 10)

scala> a zip b
res2: List[(Int, Int)] = List((1,10), (2,20), (3,50), (4,60), (5,10))

結合したもの同しを掛け算したい
_1でとってもいいし、タプルで受け取って計算しても良い、タプルの場合はcaseを書く

scala> (a zip b).map(x => x._1 * x._2)
res3: List[Int] = List(10, 40, 150, 240, 50)

scala> (a zip b).map{case (x,y) => x * y}
res4: List[Int] = List(10, 40, 150, 240, 50)

コメントを残す

メールアドレスが公開されることはありません。

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください