簡體   English   中英

Function 生成“n”個不可重復的非負隨機整數並將它們返回到列表中

[英]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的樣本。 IE:

import random

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

print(random.sample(possible_numbers, n))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM