如何在 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)
致所有人!
我有这个数据结构:
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)