我生成了以下类型的地图
immutable.Map[Int,List[Double]]
Map(
1 -> List(1.02),
2 -> List(0.42, 6.88))
我无法理解如何访问我的地图中的 List() 并使用 reduce 对元素求和。
myMap.reduce(???)
我生成了以下类型的地图
immutable.Map[Int,List[Double]]
Map(
1 -> List(1.02),
2 -> List(0.42, 6.88))
我无法理解如何访问我的地图中的 List() 并使用 reduce 对元素求和。
myMap.reduce(???)
.map()您可以使用该函数迭代 Map 。每次迭代你都会得到一个键和值,你需要返回一个键和一个值。在您的情况下,这key将是您的整数 ( 1, 2) 之一,我们可以直接通过它。这value将是一个双打列表,我们可以使用内置的求和.sum:
myMap.map { case (key, value) => (key, value.sum) }
例子:
scala> val myMap = Map(1 -> List(1.02), 2 -> List(0.42, 6.88))
myMap: scala.collection.immutable.Map[Int,List[Double]] = Map(1 -> List(1.02), 2 -> List(0.42, 6.88))
scala> myMap.map { case (key, value) => (key, value.sum) }
res0: scala.collection.immutable.Map[Int,Double] = Map(1 -> 1.02, 2 -> 7.3)
您可以替换.sum为.reduce(_ + _)并得到相同的答案。