如何创建非重复数字列表(Python)

时间:2017-06-10 23:26:30

标签: python random

所以,我需要一个学校代码,我需要使用randint生成4个随机数,它们不能重复,我似乎无法理解它。 - 干杯

2 个答案:

答案 0 :(得分:3)

使用random.sample从列表中随机选择4个元素。

import random
low, high = 0, 1000
w, x, y, z = random.sample(range(low, high) , 4)

lowhigh设置为您想要抽样的所需范围。

如果你想在很宽的范围内生成任何数字,那么使用randint这是一个不那么浪费的解决方案(很抱歉没有看到这个)。

numbers = set()
while len(numbers) < 4:
    num = random.randint(low, high)
    if num not in numbers:
        numbers.add(num)

w, x, y, z = numbers

答案 1 :(得分:3)

我们可以通过使用while循环创建一个随机数来完成4个随机数的列表,然后只有在列表中不存在该数字时才将该数字附加到列表中。如果我们可以将x -= 1添加到列表x == 0,那么while循环将停止,代码将打印出列表。

每次都会有所不同。

import random

x = 4
list_of_random_numbers = []
while x != 0:
    new_random_number = random.randint(0,999) # you can define any range of numbers here.
    if new_random_number not in list_of_random_numbers:
        list_of_random_numbers.append(new_random_number)
        x -= 1

print (list_of_random_numbers)

编辑:

同样正如PM 2Ring所述,您也可以检查列表的长度:

import random

list_of_random_numbers = []
while len(list_of_random_numbers) < 4:
    new_random_number = random.randint(0,999) # you can define any range of numbers here.
    if new_random_number not in list_of_random_numbers:
        list_of_random_numbers.append(new_random_number)

print (list_of_random_numbers)