我想从列表中随机选择一定数量的元素,并从中生成另一个列表。例如,在包含100个元素的列表中,我想随机选择20个元素并将其存储在另一个列表中。
答案 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)