【问题标题】:split a list into several lists given conditional values in scala [duplicate]给定scala中的条件值,将列表拆分为几个列表[重复]
【发布时间】:2018-03-12 06:46:37
【问题描述】:

给定一个列表,例如

List(1,2,3,4,5,6,7,8,9,10,11)

还有一个附加列表,其中包含

之类的值
List(3, 2, 6)

我怎样才能得到这样的结果:

List(List(1,2,3), List(4,5), List(6,7,8,9,10,11))

第一个列表是值列表,第二个表示要获得的分区大小作为结果。

我考虑了一个递归函数,使用 list.take() 来获取我想要的元素,然后在下一次调用之前使用 list.drop,但我无法实现上述解决方案。任何帮助我都会非常感激。

【问题讨论】:

  • 我很抱歉,过去几天我去了一个村庄,那里没有 wifi。我现在已经投票并接受了答案。

标签: scala list


【解决方案1】:
list2.scanLeft((List.empty[Int], list1)) { 
  case ((_, remaining), i) =>  remaining.splitAt(i)
}.unzip._1.tail

作者信用:How to split a list by another list in Scala

其中 list2 表示要拆分的索引列表,list1 是要拆分的列表

【讨论】:

    猜你喜欢
    • 2018-12-22
    • 2013-08-09
    • 2018-05-26
    • 1970-01-01
    • 2018-05-30
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2021-12-06
    相关资源
    最近更新 更多