我想在“特定数量的”子列表中划分列表.
也就是说,例如,如果我有一个列表List(34,11,23,1,9,83,5),并且预期的子列表数是3,那么我想要List(List(34,11),List(23,1),列表(9,5)).
我该怎么做呢?我尝试了分组,但它似乎没有做我想要的.
PS:这不是一个家庭作业问题.请提供直接的解决方案,而不是一些模糊的建议.
编辑:
要求稍有变化……
给定列表List(34,5)和子列表数= 3,我希望输出为List(List(34),List(11),5)). (即每个列表包含1个元素,但最后一个包含所有剩余元素的列表除外.)
解决方法
为了满足您更改的要求,
def splitN[A](list: List[A],n: Int): List[List[A]] = if(n == 1) List(list) else List(list.head) :: splitN(list.tail,n - 1)