我来自python世界,做一些Scala工作,有人帮助我。我有一个开始日期和结束日期,我创建了一个日期列表,
def dateRange(from: DateTime, to: DateTime, step: Period) : Iterator[DateTime] = {
Iterator.iterate(from)(_.plus(step)).takeWhile(!_.isAfter(to))
}
val from = new DateTime().withYear(2012).withMonthOfYear(1).withDayOfMonth(1)
val to = new DateTime().withYear(2018).withMonthOfYear(2).withDayOfMonth(1)
val step = new Period().withDays(1)
// Getting the iterative date lists
val range = dateRange(from, to, step)
val dateList = range.toList
val dates = dateList.map { p => p.toString("yyyy-MM-dd") }
但是,现在我需要对此进行迭代,但是只需列出每个迭代的列表元素的子集。
说,我有这样的列表:
['2014-01-01','2014-01-02','2014-01-03','2014-01-04','2014-01-05','2014-01-06', ...]
对于每次迭代,我需要发送3个日期。我怎样才能做到这一点?
您可以使用:在列表中分组:
list.grouped(3).toList
这将为您提供列表[list [t]]
例如,让我们考虑输入为:
val list = List(1,2,3,4,5,6,7,8)
应用列表后。组(3(.tolist,输出将为:
List(List(1,2,3),List(4,5,6), List(7,8))
迭代列表。这将完成必要的