在给定的时间内在Python中生成给定列表的唯一和随机样本?

时间:2017-10-11 22:03:31

标签: python

让我们说L=[1,2,3,4,5]

如何创建L?

的4个(或最多len(L)!)个唯一随机顺序

预期结果应如下所示:

[[2,1,3,4,5],[5,3,2,1,4],[4,3,2,1,5],[5,1,3,2,4]

2 个答案:

答案 0 :(得分:2)

正如this帖子所指出,您可以使用def main text = "hello" ensure puts typeof(text) # => (String | Nil) end main 生成列表的所有可能排列:

itertools

然后,如果您只想要所有可能的排列的4个随机选择(无需替换),您可以执行以下操作:

all_perms = list(itertools.permutations(L))

答案 1 :(得分:2)

相当标准的方法:选择随机样本并丢弃小样本的重复样本,如果生成覆盖大部分样本空间的样本,则选择部分随机播放。

loopFlag = false