scala统计学生成绩,输出各学科的平均值、最大值、最小值
时间: 2023-05-12 20:05:51 浏览: 562
scala-segtree:Scala中的不可变段树
可以使用 Scala 的集合框架来实现统计学生成绩的功能。首先,将学生成绩存储在一个 List 中,然后使用集合框架提供的方法进行统计计算。
以下是一个示例代码:
```scala
val scores = List(
("math", 90),
("english", 85),
("history", 95),
("chemistry", 80),
("physics", 88)
)
val subjectScores = scores.groupBy(_._1).mapValues(_.map(_._2))
val subjectStats = subjectScores.mapValues(scores => {
val count = scores.size
val sum = scores.sum
val avg = sum / count
val max = scores.max
val min = scores.min
(avg, max, min)
})
subjectStats.foreach { case (subject, (avg, max, min)) =>
println(s"$subject: avg=$avg, max=$max, min=$min")
}
```
这段代码首先定义了一个包含学科和成绩的 List,然后使用 groupBy 方法将成绩按学科分组,得到一个 Map,其中键为学科,值为该学科的成绩列表。接着,使用 mapValues 方法对每个学科的成绩列表进行统计计算,得到一个新的 Map,其中键为学科,值为该学科的平均值、最大值和最小值。最后,使用 foreach 方法遍历这个 Map,输出每个学科的统计结果。
阅读全文