如何在python中生成随机但唯一的数字?

时间:2018-01-14 03:48:56

标签: python random

我想生成一个随机数,该随机数应该是唯一的,这意味着它不应该重复或重新生成。我已经尝试制作一个列表,我在每次迭代中追加并检查它是否已经存在于列表中。如果它出现在列表中,则不会附加该数字。但我不认为这是一种有效的方法。所以,请帮帮我。

    import random
    #an empty list to append randomly generated numbers
    empty = []
    while True:
        #checking from range 500 to 510
        number = random.randrange(500, 510)
        if number not in empty:
            empty.append(number)
        else:
            pass
        #breaking the loop if the length of the numbers is 9
        if len(empty) == 9:
            break

    print("Final list --> " + str(empty))

1 个答案:

答案 0 :(得分:10)

您可以通过random.sample获取从给定池中获取的给定数量的非重复元素的列表:

>>> random.sample(range(500, 510), 9)
[500, 501, 503, 502, 505, 507, 508, 506, 504]