如何避免在List.newBuilder Scala中出现重复项?

问题描述

如何避免此代码重复:

>>> list_of_new_indexes
array([0,1,4,2,3,0])

结果是val lastUpdatesBuilder = List.newBuilder[(String,Int)] val somelist = List("a","a") for (v <- somelist) { lastUpdatesBuilder += v -> 1 } println(lastUpdatesBuilder.result()) ,我希望它仅是List((a,1))。

解决方法

您在这里:

object Demo extends App {
  val lastUpdatesBuilder = Set.newBuilder[(String,Int)]
  val somelist = List("a","a")

  for (v <- somelist) {
    lastUpdatesBuilder += v -> 1
  }

  println(lastUpdatesBuilder.result())
}

我建议不要使用可变集,您可以执行以下操作。

val ans =  somelist.map{ key =>
    key -> 1
  }.toMap

  println(ans)

或者您可以先使用distinct删除重复项,然后在其中创建地图。

val somelist = List("a","a").distinct
val ans =  somelist.map{ key =>
    key -> 1
  }.toMap
,

这是distinct方法的作用。