gpt4 book ai didi

scala - 如何从 List scala 返回多个随机元素

转载 作者:行者123 更新时间:2023-12-03 18:19:36 35 4
gpt4 key购买 nike

如何从 List 返回多个随机元素。

这个问题How to choose a random element from an array in Scala?指的是使用:

import scala.util.Random
val A = Array("please", "help", "me")
Random.shuffle(A.toList).head

我的可变因素认为我可以创建一个 for 循环并继续选择下一个随机元素(不包括已选择的元素)并将其添加到新列表中。在 Scala 中是否有更惯用/功能性的方式来实现这一点?

最佳答案

head方法将返回列表的第一个元素,但 take(n)将返回至 n列表前面的元素。所以在你洗牌后,只需使用 take :

def takeRandomN[A](n: Int, as: List[A]) =
scala.util.Random.shuffle(as).take(n)

如果您的 list as短于 n那么这将简单地洗牌 as .

对于您只想要其中一个小子集的大型列表来说,这似乎会很慢,但是可能会从列表中均匀地采样一个随机子集,因此无论如何您都必须遍历整个内容。对于 Array或其他随机访问的结构,你可以做得更好,但对于 List你不能。

关于scala - 如何从 List scala 返回多个随机元素,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21027123/

35 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com