按元素值切片 scala LIst
slice scala LIst by elements value
有这样的列表
List(List(9, 1, 9),
List(9, 1, 8),
List(8, 2, 7),
List(8, 2, 6),
List(7, 3, 5),
List(7, 3, 4))
我想按第二个元素对列表进行切片,像这样
List(List(List(9, 1, 9), List(9, 1, 8)), //second elem is "1"
List(List(8, 2, 7), List(8,2,6)), //second elem is "2"
List(List(7, 3, 5), List(7,3,4)), //second elem is "3"
我可以使用冗长的 for 循环来完成,但它太冗长了。
我也尝试使用跨度,但我无法获得第二个元素。
什么是最好的方法?
val l = List(List(9, 1, 9),
List(9, 1, 8),
List(8, 2, 7),
List(8, 2, 6),
List(7, 3, 5),
List(7, 3, 4))
l.groupBy( {case first::second::tail => second} ).values.toList
有这样的列表
List(List(9, 1, 9),
List(9, 1, 8),
List(8, 2, 7),
List(8, 2, 6),
List(7, 3, 5),
List(7, 3, 4))
我想按第二个元素对列表进行切片,像这样
List(List(List(9, 1, 9), List(9, 1, 8)), //second elem is "1"
List(List(8, 2, 7), List(8,2,6)), //second elem is "2"
List(List(7, 3, 5), List(7,3,4)), //second elem is "3"
我可以使用冗长的 for 循环来完成,但它太冗长了。 我也尝试使用跨度,但我无法获得第二个元素。 什么是最好的方法?
val l = List(List(9, 1, 9),
List(9, 1, 8),
List(8, 2, 7),
List(8, 2, 6),
List(7, 3, 5),
List(7, 3, 4))
l.groupBy( {case first::second::tail => second} ).values.toList