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

时间:2015-04-07 22:59:11

标签: scala

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

2 个答案:

答案 0 :(得分:5)

最简单的方法是单行:

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

你可以尝试变得聪明并避免改变整个列表,但这几乎绝对没有必要,并且很容易弄错。

答案 1 :(得分:4)

使用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)