在python中是否有一个方法可以在除特定数字之外的范围内生成随机非重复数字。例如,我想生成介于1和10之间的数字,但不应生成“1”。任何帮助都将不胜感激。谢谢
答案 0 :(得分:2)
将random.sample()
用于不包含您不喜欢的值的人口。
>>> import random
>>> population = range(2,11) # 2,3,4,5,6,7,8,9,10
>>> print random.sample(range(2,11), 5)
[6, 2, 4, 8, 9]
或者另一个例子,如果你不想要" 42":
>>> population = range(1, 101) # 1,2,...,100
>>> population.remove(42)
>>> print random.sample(population, 20)
[45, 10, 86, 7, 79, 39, 88, 80, 41, 85, 25, 96, 68, 55, 5, 74, 8, 9, 65, 18]
答案 1 :(得分:0)
假设您要排除n
到a
范围内的b
import random
random.choice([random.randint(a,n-1),random.randint(n+1,b)])