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)
所以我目前在学习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)