相关疑难解决方法(0)

Scala如何计算列表中出现的次数

val list = List(1,2,4,2,4,7,3,2,4)
Run Code Online (Sandbox Code Playgroud)

我想像这样实现它:( list.count(2)返回3).

scala

92
推荐指数
11
解决办法
10万
查看次数

计算Scala中List [List [T]]中每个元素的出现次数

假设你有

val docs = List(List("one", "two"), List("two", "three"))
Run Code Online (Sandbox Code Playgroud)

例如List("one","two")表示包含术语"one"和"two"的文档,并且您希望为每个术语构建一个包含文档频率的地图,即在这种情况下

Map("one" -> 1, "two" -> 2, "three" -> 1)
Run Code Online (Sandbox Code Playgroud)

你会如何在Scala中做到这一点?(并且以有效的方式,假设一个更大的数据集.)

我的第一个类似Java的想法是使用一个可变映射:

val freqs = mutable.Map.empty[String,Int]
for (doc <- docs)
  for (term <- doc)
    freqs(term) = freqs.getOrElse(term, 0) + 1
Run Code Online (Sandbox Code Playgroud)

它运作得很好,但我想知道如何以更"功能"的方式做到这一点,而不是诉诸一个可变的地图?

scala scala-collections

9
推荐指数
2
解决办法
6868
查看次数

标签 统计

scala ×2

scala-collections ×1