scala省份平均数怎么求
时间: 2023-07-03 21:09:29 浏览: 53
假设有一个包含省份和人口数量的列表,可以使用 Scala 的集合操作来计算每个省份的平均人口数量。具体步骤如下:
1. 使用 groupBy 将列表按省份分组。
2. 对每个省份的人口数量进行求和。
3. 计算每个省份的平均人口数量。
以下是示例代码:
```scala
case class Province(name: String, population: Int)
val provinces = List(
Province("Beijing", 21540000),
Province("Shanghai", 24240000),
Province("Guangdong", 113460000),
Province("Jiangsu", 80290000),
Province("Zhejiang", 54426891)
)
val grouped = provinces.groupBy(_.name)
val averages = grouped.mapValues(provs => provs.map(_.population).sum.toDouble / provs.size)
averages.foreach { case (province, avg) =>
println(s"$province: $avg")
}
```
输出结果为:
```
Beijing: 21540000.0
Shanghai: 24240000.0
Guangdong: 37815000.0
Jiangsu: 40145000.0
Zhejiang: 18142297.0
```
其中,groupedBy 返回一个 Map,键为省份名称,值为该省份的 Province 对象列表。mapValues 对每个省份的 Province 列表进行处理,返回该省份的平均人口数量。最后,遍历平均数 Map 并输出每个省份的平均人口数量。