slice scala LIst by elements value

时间:2015-09-02 20:40:49

标签: html arrays list scala slice

有像这样的列表

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循环来完成它,但它太冗长了。 我也尝试使用span,但是我没有得到第二个元素。 什么是最好的方法?

1 个答案:

答案 0 :(得分:3)

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