2016-08-29 9 views
1

リスト内の要素を組み合わせるにはどうすればいいですか?基本的に、私はそれぞれの文字に関連付けられた数字を合計すると、手紙は一度だけリストに表示されますScalaリストの要素を結合する

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

:。私は次のような結果を得るよう

List(('h', 1), ('i', 1), ('h', 1), ('i', 1), ('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 
関連する問題