【问题标题】:How to split List in Scala?如何在Scala中拆分列表?
【发布时间】:2013-08-26 13:55:43
【问题描述】:

如何将列表 L(或任何其他集合)拆分为 2 个列表,以便第一个包含 80% 的 L,第二个包含其余部分?

【问题讨论】:

  • API 提示有一个方法叫splitAt....

标签: list scala collections partitioning


【解决方案1】:
val (first80pct, rest) = L.splitAt(L.size * 4 / 5)

在没有确定长度的集合(例如流)上使用它时要小心。

【讨论】:

  • 还要小心边缘情况 - 例如如果 L 的大小为 1,则上面将唯一的元素放入“rest”。如果我们希望在第一个元素中 至少 80%,那么math.ceil(L.size * 0.80).toInt 会更合适。
  • @LuigiPlinge 可以改写成(L.size * 0.8).ceil.toInt吗?
猜你喜欢
  • 2020-04-05
  • 2018-08-13
  • 2013-08-09
  • 2019-08-29
  • 1970-01-01
  • 1970-01-01
  • 2017-06-06
  • 1970-01-01
  • 2010-10-09
相关资源
最近更新 更多