Seq [((Tuple A)、(Tuple B))]があります
タプルAをグループ化する簡単な方法があるので、Seq [(Tuple A、Seq [Tuple B])]を取得します。
groupby(x => x.TupleA)を試しましたが、マッピング例外がスローされます:タプルのキーをシリアル化する方法がわかりません。
これでうまくいくと思います。groupBy(_._1)
タプルの最初の要素でシーケンスをグループ化し、リスト内のタプルの2番目の要素を収集するために使用します。
val s = Seq(((1,2,3), (4,5,6)), ((1,2,3), (5,6,7)), ((2,3,4), (4,5,6)))
s.groupBy(_._1).mapValues(_.map(_._2))
// res1: scala.collection.immutable.Map[(Int, Int, Int),Seq[(Int, Int, Int)]] =
// Map((1,2,3) -> List((4,5,6), (5,6,7)), (2,3,4) -> List((4,5,6)))
結果をマップではなくリストにしたい場合は、以下を使用toList
して変換します。
s.groupBy(_._1).mapValues(_.map(_._2)).toList
与える:
// List(((1,2,3),List((4,5,6), (5,6,7))), ((2,3,4),List((4,5,6))))
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加