【发布时间】:2018-06-02 13:58:36
【问题描述】:
我的目标是将文本(索引,行)中的每个单词映射到包含该单词出现的每一行的索引的列表。我设法编写了一个函数,该函数返回分配给索引的所有单词的列表.
下面的函数应该完成剩下的工作(将索引列表映射到每个单词):
def mapIndicesToWords(l:List[(Int,String)]):Map[String,List[Int]] = ???
如果我这样做:
l.groupBy(x => x._2)
它返回一个Map[String, List[(Int,String)]。现在我只想将值更改为键入List[Int]。
我想过使用.mapValues(...) 并以某种方式折叠列表,但我是 scala 新手,不知道正确的方法。
那么如何转换列表呢?
【问题讨论】:
-
转换
List[(Int,String)] into List[Int]只是在做一个.map(_._1) -
@RameshMaharjan 非常感谢
-
你解决了吗?
-
@RameshMaharjan 是的
l.groupBy(x => x._2).mapValues[List[Int]](f => f.map(_._1))效果很好
标签: scala functional-programming