我知道如何在 Python 中生成一定范围内的随机数。
random.randint(numLow, numHigh)
我知道我可以将其放入循环中以生成 n 个数字
for x in range (0, n):
listOfNumbers.append(random.randint(numLow, numHigh))
但是,我需要确保该列表中的每个数字都是唯一的。除了大量条件语句之外,是否有一种直接的方法来生成 n 个唯一的随机数?
重要的是列表中的每个数字都与其他数字不同。
So
[12,5,6,1] = 好
But
[12, 5, 5, 1] = 不好,因为数字 5 出现了两次。
如果您只需要取样而不需要更换:
>>> import random
>>> random.sample(range(1, 100), 3)
[77, 52, 45]
随机抽样 https://docs.python.org/2/library/random.html#random.sample需要人口和样本量k
并返回k
人口中的随机成员。
如果你必须控制以下情况k
大于len(population)
,你需要准备好抓住ValueError
:
>>> try:
... random.sample(range(1, 2), 3)
... except ValueError:
... print('Sample size exceeded population size.')
...
Sample size exceeded population size
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)