斯卡拉 - 将元组映射到地图的地图?

ece*_*pda 3 dictionary scala list

我有一个元组列表:

val t = List( (1,2,1.0), (1,3,2.0), (1,2,1.1) )
Run Code Online (Sandbox Code Playgroud)

我想创建一个带有t._1键的映射,以及带有t._2键的映射值和值的总和t._3.

val m = Map( (1-> Map((2 -> 2.1), (3 -> 2.0)) )
Run Code Online (Sandbox Code Playgroud)

我怎样才能在Scala中执行此操作?

我想用纯Scala而不是库来实现这个目标,但是如果scalaz等库(我完全主观认为)是一个更好看的解决方案,我也会接受这个答案.

mar*_*ios 6

如果你是一个单行,那么你可能会喜欢这个:

val t = List( (1,2,1.0), (1,3,2.0), (1,2,1.1) )
t.groupBy(_._1).mapValues(_.groupBy(_._2).mapValues(_.map(_._3).sum))
Run Code Online (Sandbox Code Playgroud)

结果是:

Map(1 -> Map(2 -> 2.1, 3 -> 2.0))
Run Code Online (Sandbox Code Playgroud)