例如,一开始我想从 (0,9) 生成一个随机整数,
一开始,程序生成2,然后我把2放在'excluding'列表中,
下次,我需要生成一个介于 0 到 9 之间的数字,不包括 2。假设在第二轮,程序生成 5。
第三轮,我需要生成一个0到9的数字,不包括2和5。
由于范围很大(百万级),请问有什么方法比较高效?
最佳答案
生成可能的值一次,将其打乱并每次从该列表中弹出值:
values = range(10)
random.shuffle(values)
def get_value():
return values.pop()
这最终会以随机顺序生成范围内的所有值,不会重复。
关于python - 在python中,如何生成一个范围内的随机整数,不包括列表中的某些数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23138404/