如何在scala中对列表中的列求和

how to make sum of a column in a list in scala

我是 scala 的新手,正在努力学习,尤其是集合。我找不到按第一列分组对第二列求和的方法。我的数据如下:

val a2 = List(("Comedy",2.0),
  ("Comedy",2.5),
  ("Adv",3.0),
  ("Adv",2.5)

我的目标是使用 group by 1st 和 2nd one:

Comedy, 4.5
Adv, 5.5

我做了分组,但是 .sum(i => i._2) 没有用。你知道怎么做吗?

你可以在求和之前使用groupBy:

  List(
    ("Comedy", 2.0),
    ("Comedy", 2.5),
    ("Adv", 3.0),
    ("Adv", 2.5)
  )
    .groupBy(_._1)
    .map(group => (group._1, group._2.map(_._2).sum))
    .foreach(println)