从scala中映射的值计算平均值
我有一张地图,代表一本成绩册,其中关键是成绩,值是达到该成绩的学生人数 我的地图如下所示:从scala中映射的值计算平均值,scala,hashmap,Scala,Hashmap,我有一张地图,代表一本成绩册,其中关键是成绩,值是达到该成绩的学生人数 我的地图如下所示: grades = Map("1" -> 0, "2" -> 0, "3" -> 0, "4" -> 0, "5" -> 0) 然后我从学生的分数列表中读取键的值,用值填充0 我现在要做的是计算平均分数: val avg = grades.foreach{case (k,v) => k * v} / grades.foldLeft(0)(_+_._2) 但问题是 gr
grades = Map("1" -> 0, "2" -> 0, "3" -> 0, "4" -> 0, "5" -> 0)
然后我从学生的分数列表中读取键的值,用值填充0
我现在要做的是计算平均分数:
val avg = grades.foreach{case (k,v) => k * v} / grades.foldLeft(0)(_+_._2)
但问题是
grades.foreach{case (k,v) => k * v}
仅返回()
try:(还有其他方法可以做到这一点-我试图坚持您原来的流程)
我对代码的修改:
1.使用map而不是foreach
2.将k转换为整数
3.除以float得到float答案很高兴能提供帮助。请考虑接受我的答案:<代码>等级。FordDeLee(0)(+ +2 .2)<代码> > >代码>等级。值。
val avg = grades.map{case (k,v) => k.toInt * v}.sum
/ grades.foldLeft(0)(_+_._2).toFloat