我知道如何在 Python 中生成一个范围内的随机数。
random.randint(numLow, numHigh)
而且我知道我可以把它放在一个循环中来生成 n 数量的这些数字
for x in range (0, n):
listOfNumbers.append(random.randint(numLow, numHigh))
但是,我需要确保该列表中的每个数字都是唯一的。除了大量的条件语句之外,是否有一种直接的方法可以生成 n 个唯一随机数?
重要的是列表中的每个数字都与其他数字不同。
所以
[12, 5, 6, 1] = 好
但
[12, 5, 5, 1] = 不好,因为数字 5 出现了两次。
原文由 Chris Headleand 发布,翻译遵循 CC BY-SA 4.0 许可协议
如果您只需要采样而不更换:
random.sample 采用总体和样本大小
k
并返回k
的随机成员。如果您必须控制
k
大于len(population)
的情况,则需要准备捕捉ValueError
: