如何在scala中将项目列表转换为固定大小的列表

时间:2019-03-08 10:34:42

标签: scala list split sublist

我有一个不确定项目列表。我需要在scala中将它们分成固定大小的列表。

想象一下,列表中有450个项目,我需要将其分为4个列表,每个列表100个项目。我们如何实现这一目标?

1 个答案:

答案 0 :(得分:4)

这可以通过grouped(size: Int)来实现。

示例:

val l = List(1,2,3,4,5,6,7,8,9,10)
println(l.grouped(2).toSeq) // --> Stream(List(1, 2), ?)
println(l.grouped(2).toList) // --> List(List(1, 2), List(3, 4), List(5, 6), List(7, 8), List(9, 10))

来自IterableLikeScalaDoc):

  /** Partitions elements in fixed size ${coll}s.
   *  @see [[scala.collection.Iterator]], method `grouped`
   *
   *  @param size the number of elements per group
   *  @return An iterator producing ${coll}s of size `size`, except the
   *          last will be less than size `size` if the elements don't divide evenly.
   */
  def grouped(size: Int): Iterator[Repr] = ...