scala 在列表列表中找到最大值

scala find the max value in a list of lists

所以我目前在学习scala,发现了一个问题: 我有一个列表列表

List(
  List(8, 9, 10, 9, 8), 
  List(12, 9, 12, 8, 7), 
  List(12, 3, 12, 3, 2)
)

并想找到最大值 例如:

List(12, 9, 12, 9, 8)

我怎样才能达到那个结果?

谢谢

要在每个列表中找到相同索引处的最大值,您可以 tranpose 列表列表,然后找到 max 转置列表。

这个直接来自 Scala 文档的示例展示了 tranpose 的工作原理:

val xs = List(
           Set(1, 2, 3),
           Set(4, 5, 6)).transpose
 xs == List(
         List(1, 4),
         List(2, 5),
         List(3, 6))

现在对您的数据执行相同的操作,并取转置列表中的最大值:

val xss: List[List[Int]] = List(List(8, 9, 10, 9, 8), List(12, 9, 12, 8, 7), List(12, 3, 12, 3, 2))
                                                                                                                                                                                                                    
scala> xss.transpose.map(xs => xs.max)
val res3: List[Int] = List(12, 9, 12, 9, 8)