生成 "n" non-repeatable 非负随机整数并在列表中生成 returns 的函数

Function that generates "n" non-repeatable nonnegative random integers and returns them in a list

这显然与标题中所说的相去甚远。

我不知道如何继续生成随机整数,直到用户输入的长度与循环中附加的新列表相匹配。到目前为止,这就是我所拥有的,这是垃圾,我得到的只是一个空列表。我不知道我是否接近它应该如何。

提前谢谢你

注意:我知道这很容易用 random.sample(range(100), k=n).

import random
n = int(input('You: '))
def random_list():
    list = []
    while list:
        a = random.randint(1, 100)
        if a not in list:
            list = list.append(a)
            if len(n) == len(list):
                break
    return list

print(random_list())

保持结构:

import random

n = int(input('You: '))

def random_list(n):
    my_list = []
    possible_numbers = list(range(1, 100))
    for _ in range(n):
        number_to_add = random.choice(possible_numbers)
        my_list.append(number_to_add)
        possible_numbers.remove(number_to_add)
    return my_list

print(random_list(n))

编辑:我看到你提到了以下方法,我还是保留了它。

不同的是,您可以使用 random.sample(seq, n) 从可迭代对象 seq 中选取维度 n 的样本。即:

import random

n = int(input('You: '))
possible_numbers = range(1, 100)

print(random.sample(possible_numbers, n))