0

私はList[(List[(Char,Int)],String)]このようなものを持っています

val words = List((List(('a',1),('e',1),('t',1)),"ate"),
                 (List(('a',1),('e',1),('t',1)),"eat"),
                 (List(('a',1),('e',1),('t',1)),"tea"))

これは、各単語の各文字の出現を表します。

ここで、このリストをオカレンスごとにグループ化して、このような1つのアイテムを含むリストを作成します。

val grouped = List((List(('a',1),('e',1),('t',1)),(List("ate","eat","tea"))))

試しwords groupBy(i => i._1)ましたが、出力は

(List((a,1), (e,1), (t,1)),List((List((a,1), (e,1), (t,1)),ate), (List((a,1), (e,1), (t,1)),eat), (List((a,1), (e,1), (t,1)),tea)))

for expression:どちらも使用したくないので、 andfor loopのような高階関数を使用するのが好きです。mapflatMap

誰かが私にヒントを与えることができますか?

4

1 に答える 1

4
words.groupBy(_._1).mapValues(_.map(_._2).toList.sorted).toList
于 2012-10-30T14:11:32.820 に答える