목록의 요소를 어떻게 결합합니까?스칼라 목록의 요소 결합
List(('h', 1), ('i', 1), ('h', 1), ('i', 1), ('l', 2))
같은 나는 다음과 같은 결과를 얻을 :
List(('h', 2), ('i', 2), ('l', 2))
는 기본적으로, 각 문자와 연결된 숫자를 합계를, 그리고 편지가 한 번만 목록에 나타납니다.
목록의 요소를 어떻게 결합합니까?스칼라 목록의 요소 결합
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