gpt4 book ai didi

scala - 从 Map[String,List[Int]] 折叠到 Map[String,Int]

转载 作者:行者123 更新时间:2023-12-01 07:28:49 27 4
gpt4 key购买 nike

总的来说,我对 Scala 和函数式方法还比较陌生。我有一个看起来像这样的 map :

val myMap: Map[String, List[Int]]

我想结束一些将键映射到关联列表总数的东西:

val totalsMap: Map[String, Int]

我最初的直觉是使用 a 表示理解:

val totalsMap = for (kvPair <- myMap) {
kvPair._2.foldLeft(0)(_+_)
}

但我不知道我应该在 yield() 子句中放入什么以便从 for 理解中获取映射。

最佳答案

您可以为此使用 mapValues,

val totalMap = myMap.mapValues(_.sum)

但是每次从 Map 中获取键时,mapValues 都会重新计算总和。例如如果多次执行 totalMap("a"),它会每次都重新计算总和。

如果你不想要这个,你应该使用

val totalMap = myMap map { 
case (k, v) => k -> v.sum
}

关于scala - 从 Map[String,List[Int]] 折叠到 Map[String,Int],我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25632998/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com