![](/img/trans.png)
[英]How to generate in python a random number in a range but biased toward some specific numbers?
[英]Generate random non repeating numbers in a range except a specific number in python
python中是否有一种方法可以生成除特定数字之外的某个范围内的随机非重复数字。例如,我想生成1到10之间的数字,但不应生成“ 1”。请多多帮助。谢谢。
对不包含您不喜欢的值的总体使用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]
假设您要排除a
到b
范围内的n
import random
random.choice([random.randint(a,n-1),random.randint(n+1,b)])
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.