组合Scala列表中的元素

时间:2016-08-29 05:13:44

标签: list scala

如何组合列表中的元素,例如

List(('h', 1), ('i', 1), ('h', 1), ('i', 1), ('l', 2))

这样我得到以下结果:

List(('h', 2), ('i', 2), ('l', 2))

基本上,我想总结与每个字母相关的数字,这封信只应出现在列表中一次。

3 个答案:

答案 0 :(得分:4)

val myList = List(('h', 1), ('i', 3), ('h', 5), ('i', 7), ('l', 2))
myList.groupBy(_._1).mapValues(_.foldLeft(0)(_ + _._2)).toList
res0: List[(Char, Int)] = List((h,6), (i,10), (l,2))

答案 1 :(得分:1)

val df = List(('h', 1), ('i', 1), ('h', 1), ('i', 1), ('l', 2))
val c = df.groupBy(_._1).mapValues(_.map(_._2).sum).toList
List((h,2), (i,2), (l,2))

答案 2 :(得分:0)

你可以这样做:

val h = List(('h', 3), ('i', 1), ('h', 1), ('i', 1), ('l', 2))

h.groupBy(_._1).map(f => (f._1, f._2.map(_._2).sum)).toList