例如,在开始时我想从(0,9)生成一个随机整数,
第一次,程序生成2,然后我把2放在'排除'列表中,
下次,我需要生成一个介于0到9之间的数字,并排除2.让我们说它是第二个转弯,程序生成5.
第三回合,我需要生成一个从0到9的数字,不包括2和5.
由于范围非常大(百万级),有什么方法是有效的吗?
生成一次可能的值,每次刷新该值并从该列表中弹出值:
values = range(10)
random.shuffle(values)
def get_value():
return values.pop()
Run Code Online (Sandbox Code Playgroud)
这将最终以随机顺序产生该范围内的所有值,而不重复.
| 归档时间: |
|
| 查看次数: |
2191 次 |
| 最近记录: |