如何在 Scala 中汇总列表?

How to summarize lists in Scala?

致所有人!

我有这个数据结构:

List[List[String]]

所有 List[String] 的大小相同,看起来像:

List(List(1, 2, 3), List(4, 5, 6), List(7, 8, 9))

我需要像这样总结此列表中的列:

val result = List(1 + 4 + 7, 2 + 5 + 8, 3 + 6 + 9)

用这样的算法

res[0] = list1[0] + list2[0] + list3[0]

res[1] = list1[1] + list2[2] + list3[3]

...

求助!

您正在寻找 transpose 方法:

scala> val in = List(List(1, 2, 3), List(4, 5, 6), List(7, 8, 9))
in: List[List[Int]] = List(List(1, 2, 3), List(4, 5, 6), List(7, 8, 9))

scala> in.transpose
res0: List[List[Int]] = List(List(1, 4, 7), List(2, 5, 8), List(3, 6, 9))

scala> in.transpose.map(_.sum)
res1: List[Int] = List(12, 15, 18)