从给定范围中获取“n”个唯一随机数的列表

我需要 1 到 20 之间的 3 个唯一随机数。

我有一个循环从 1 到 20 生成 3 个随机数。我不希望有任何重复。我有一些适用于前两个数字的东西。但是在我的代码中,第一个和第三个数字仍然可以是相同的,需要修复。

i = 1

while i <= 3:
    x = random.randint(1, 20)
    print(choice([i for i in range(1, 20) if i != [x]]))
    i += 1

有没有更好的方法在 Python 中实现这一点?

回答

您可以使用random.sample(). 下面的示例将返回 1 到 20 之间的 3 个唯一随机数。

>>> import random

>>> sample_count = 3   # count of required unique numbers
>>> start_range, end_range = 1, 20  # start and end range

>>> random.sample(range(start_range, end_range+1), sample_count)
[4, 1, 14]

有关更多详细信息,请参阅random.sample() 文档。


以上是从给定范围中获取“n”个唯一随机数的列表的全部内容。
THE END
分享
二维码
< <上一篇
下一篇>>