簡體   English   中英

list.remove(x): x 不在隨機數列表中

[英]list.remove(x): x not in list on a random number list

我收到list.remove(x)錯誤所以我在這里做的是,我正在使用這個程序從設定的范圍內生成不重復的隨機數,並在調用該數字時刪除該數字,但不知何故我沒有進入即使從列表中調用了隨機數,列表消息也是如此。

import random
def checkPizza(numOfPizza):
    pizzaD = []
    allowed_val = list(range(0,M+1))
    if numOfPizza == 2:
        allowed_val = allowed_val
        while True:
            allowed_val = allowed_val
            alpha = random.choice(allowed_val)
            beta = random.choice(allowed_val)
            if alpha != beta:
                allowed_val.remove(alpha)
                allowed_val.remove(beta)
                pizzaD.append(alpha)
                pizzaD.append(beta)
                break

你的代碼對我來說運行良好。 你沒有在這里定義 M 所以我選擇了一個任意數字:

import random
def checkPizza(numOfPizza):
    pizzaD = []
    allowed_val = list(range(0,10))
    if numOfPizza == 2:
        allowed_val = allowed_val
        while True:
            allowed_val = allowed_val
            alpha = random.choice(allowed_val)
            beta = random.choice(allowed_val)

            if alpha != beta:
                allowed_val.remove(alpha)
                allowed_val.remove(beta)
                pizzaD.append(alpha)
                pizzaD.append(beta)
                print(pizzaD)
                break


checkPizza(2)

output:

[7, 5]

然而,我不清楚allowed_val=allowed_val應該做什么。 它在您的代碼中出現兩次。 此外,我認為您正在使用 while 循環來處理 alpha 等於 beta 的情況。 在我看來,以下是首選:

alpha,beta = random.sample(allowed_val,2)

這將從 allowed_val 列表中分配兩個不相同的值。 在這種情況下,您不需要while True循環

暫無
暫無

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

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