如何在没有k的情况下进行随机采样,直到生成某个整数?(Python)
我在Python中工作,基本上我有一个整数列表:如何在没有k的情况下进行随机采样,直到生成某个整数?(Python),python,loops,while-loop,random-sample,Python,Loops,While Loop,Random Sample,我在Python中工作,基本上我有一个整数列表: [1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 6, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 9, 9, 9, 9, 10] 使用变量total,我试图找出如何从这个列表中生成随机数(不替换),直到生成10,然后停止。我想
[1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 1, 2, 2, 3, 3, 3, 3, 3, 3, 3, 3, 3, 3, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 4, 5, 5, 6, 6, 6, 6, 6, 7, 7, 7, 7, 8, 8, 8, 8, 8, 9, 9, 9, 9, 10]
使用变量total
,我试图找出如何从这个列表中生成随机数(不替换),直到生成10,然后停止。我想这会在一段时间内使用random.shuffle
,但我不确定。有什么提示或建议吗?您可以从total
中弹出一个随机元素,然后检查它是否是10
。例如:
while total.pop(random.randrange(len(total))) != 10:
... # do your stuff until the 10 is chosen
total.pop(i)从total
中删除索引i
的元素,因此这将起作用,无需替换。也
编辑:也许你试图通过多次使用同一个元素来实现的是一个加权随机选择;这将是一个相当丑陋的解决方案。在这种情况下,看看这个问题()是否有帮助。干杯。使用
random.shuffle
甚至不需要循环
random.shuffle(l)
random_selection = l[ :l.index(10) ]
对不起,
total
在这个场景中扮演什么角色?你想知道产生10
需要多少个循环吗?是的,total只是我的一组整数,它们的数字是1,2,3…10,我想从这组整数中随机抽取数字,直到得到10,然后停止。标准库random.choice
从非空序列中选择一个随机元素。谢谢!我想这就是我要找的。但是,它看起来可以生产最多10台的所有产品,但不包括10台。它是否包含10?@user2057725:l.index(10)+1
?