繁体   English   中英

生成除python中的特定数字以外的范围内的随机非重复数字

[英]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]

假设您要排除ab范围内的n

import random
random.choice([random.randint(a,n-1),random.randint(n+1,b)])

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM