2016-08-29 2 views
1

목록의 요소를 어떻게 결합합니까?스칼라 목록의 요소 결합

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

같은 나는 다음과 같은 결과를 얻을 :

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

는 기본적으로, 각 문자와 연결된 숫자를 합계를, 그리고 편지가 한 번만 목록에 나타납니다.

답변

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
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)) 
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