List 如何在Scala中拆分列表?

List 如何在Scala中拆分列表?,list,scala,collections,partitioning,List,Scala,Collections,Partitioning,如何将列表L或任何其他集合拆分为两个列表,以便第一个列表包含L的80%,第二个列表包含剩余的L val (first80pct, rest) = L.splitAt(L.size * 4 / 5) 您可能希望在没有确定长度的集合(例如流)上小心使用此选项 在没有确定长度的集合(如streams)上使用此方法时要小心。API建议有一个名为splitAt的方法……API建议有一个名为splitAt的方法……也要小心边缘情况——例如,如果L的大小为1,则上述方法会使唯一的元素处于静止状态。如果我们希

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

val (first80pct, rest) = L.splitAt(L.size * 4 / 5)
您可能希望在没有确定长度的集合(例如流)上小心使用此选项


在没有确定长度的集合(如streams)上使用此方法时要小心。

API建议有一个名为splitAt的方法……API建议有一个名为splitAt的方法……也要小心边缘情况——例如,如果L的大小为1,则上述方法会使唯一的元素处于静止状态。如果我们希望在第一个元素中至少包含80%,那么math.ceilL.size*0.80.toInt将更合适。@Luigipling是否可以将其重写为L.size*0.8.ceil.toInt?也要注意边缘情况-例如,如果L是大小1,则上述操作会使唯一的元素处于静止状态。如果我们希望在第一个中至少包含80%,那么math.ceilL.size*0.80.toInt将更合适。@Luigipling是否可以将其改写为L.size*0.8.ceil.toInt?