1

我试图弄清楚我如何实现以下目标。

我有一个元组列表

scala> List(t1,t2,t3)
res16: List[(Int, java.lang.String)] = List((1001,Test), (1002,Schnitzel), (1001,Käse))

我想要从这个列表中得到的是 s.th。像这样

List[(Int, Seq[java.lang.String]) = List((1001, Seq(Test, Käse)), (1002, Seq(Schnitzel)))
4

1 回答 1

2

已经有一个功能groupBy几乎可以实现您想要的。例如,

val xs = List(t1, t2, t3)
val m  = xs.groupBy(_._1)

按它们的第一个组件对 antries 进行分组xs,从而生成地图

Map(1002 -> List((1002,Schnitzel)), 1001 -> List((1001,Test), (1001,Kaese)))

这没有您想要的类型,并且键仍然是条目的一部分。这可以通过例如解决

val ys : List[(Int, Seq[String])] = m.mapValues(_.map(_._2)).toList
于 2013-03-17T07:28:18.457 回答