[英]Combining elements in a Scala list
如何合并列表中的元素,例如
List(('h', 1), ('i', 1), ('h', 1), ('i', 1), ('l', 2))
这样我得到以下结果:
List(('h', 2), ('i', 2), ('l', 2))
基本上,我想对与每个字母关联的数字求和,并且该字母仅应在列表中出现一次。
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))
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))
你可以做:
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
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.