假设我需要将给定列表拆分为3个段,如下所示:
val l = (0 until 5).toList
val segments = l.tails.map(_.take(3)).filter(_.size == 3).toList
segments: List[List[Int]] = List(List(0, 1, 2), List(1, 2, 3), List(2, 3, 4))
Run Code Online (Sandbox Code Playgroud)
我得到了segments我的需要,但代码显然是丑陋的.你会怎么改写它?
用途sliding:
val segments: Iterator[List[Int]] = l.sliding(3)
segments.toList
> List[List[Int]] = List(List(0, 1, 2), List(1, 2, 3), List(2, 3, 4))
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
72 次 |
| 最近记录: |