我是 Scala 的新手,我正在尝试找出一些 scala 语法。
所以我有一个字符串列表。
wordList: List[String] = List("this", "is", "a", "test")
我有一个函数,它返回一个包含每个单词的辅音和元音计数的对列表:
def countFunction(words: List[String]): List[(String, Int)]
因此,例如:
countFunction(List("test")) => List(('Consonants', 3), ('Vowels', 1))
我现在想获取单词列表并按计数签名对它们进行分组:
def mapFunction(words: List[String]): Map[List[(String, Int)], List[String]]
//using wordList from above
mapFunction(wordList) => List(('Consonants', 3), ('Vowels', 1)) -> Seq("this", "test")
List(('Consonants', 1), ('Vowels', 1)) -> Seq("is")
List(('Consonants', 0), ('Vowels', 1)) -> Seq("a")
我想我需要使用 GroupBy 来做到这一点:
def mapFunction(words: List[String]): Map[List[(String, Int)], List[String]] = {
words.groupBy(F: (A) => K)
}
我已经阅读了 Map.GroupBy 的 scala api,看到 F 代表鉴别器函数, K 是您想要返回的键的类型。所以我尝试了这个:
words.groupBy(countFunction => List[(String, Int)]
但是,scala 不喜欢这种语法。我尝试为 groupBy 查找一些示例,但似乎对我的用例没有任何帮助。有任何想法吗?