我的列表如下
#Example line
#This is part of the parsed line
#Thats goes one
#End of line
我想将此列表分组到子列表中,如下所示
List[Int] = List(50176482, 50176481, 50176485, 50176479, 50176478, 51176477, 51176483, 51176480)
和
List1[Int] = List(50176482, 50176481, 50176485, 50176479, 50176478)
通过引用每个列表元素的两位数字(在这里它是50和51)。
答案 0 :(得分:0)
只需使用列表中的过滤器检查列表中每个数字的前两位数字:
List(50176482, 50176481, 50176485, 50176479, 50176478)
List(51176477, 51176483, 51176480)
<强>输出:强>
{{1}}
答案 1 :(得分:0)
您可以使用groupBy
:
val x = List(50176482, 50176481, 50176485, 50176479, 50176478, 51176477, 51176483, 51176480)
x.groupBy(_.toString.take(2))
此处_.toString.take(2)
用于制作群组。您可以使用任何返回2位数字的函数,即使没有转换为String。
结果:
res0: scala.collection.immutable.Map[String,List[Int]] = Map(51 -> List(51176477, 51176483, 51176480), 50 -> List(50176482, 50176481, 50176485, 50176479, 50176478))
如果您只想要列表,请使用.values
:
x.groupBy(_.toString.take(2)).values
res0: Iterable[List[Int]] = MapLike(List(51176477, 51176483, 51176480), List(50176482, 50176481, 50176485, 50176479, 50176478))