Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Scala 如何从列表中随机选择一定数量的元素_Scala - Fatal编程技术网

Scala 如何从列表中随机选择一定数量的元素

Scala 如何从列表中随机选择一定数量的元素,scala,Scala,我想从列表中随机选择一定数量的元素,然后再从中列出另一个列表。例如,从包含100个元素的列表中,我想随机选择20个元素并将其存储在另一个列表中。使用util.Random对列表进行无序排列,然后取前20个元素: scala> import scala.util.Random import scala.util.Random scala> val l = List.range(1,100) l: List[Int] = List(1, 2, 3, ...., 98, 99) sca

我想从列表中随机选择一定数量的元素,然后再从中列出另一个列表。例如,从包含100个元素的列表中,我想随机选择20个元素并将其存储在另一个列表中。

使用
util.Random
对列表进行无序排列,然后取前20个元素:

scala> import scala.util.Random
import scala.util.Random

scala> val l = List.range(1,100)
l: List[Int] = List(1, 2, 3, ...., 98, 99)

scala> Random.shuffle(l).take(20)
res2: List[Int] = List(11, 32, 95, 56, 90, ..., 45, 20)

最简单的方法是使用一行程序:

scala> util.Random.shuffle((1 to 100).toList).take(10)
res0: List[Int] = List(63, 21, 49, 70, 73, 14, 23, 88, 28, 97)

您可以尝试变得聪明,避免混乱整个列表,但这几乎肯定是不必要的,而且很容易出错。

我会本能地对仅代码的答案(最初是这样)进行向下投票。这不是一场竞赛,我不认为在你提出要求后,急于发布一些代码然后编辑你的答案有任何意义。这很公平,而且我在竞赛方面也同意你的观点(尽管我认为,在某些情况下,这个问题是其中之一,只有代码的答案是完全正确的)。