python - list.remove(x): x 不在随机数列表中
问题描述
我收到list.remove(x)
错误所以我在这里做的是,我正在使用该程序生成随机数,而不会从设定的范围内重复,并在调用该数字时删除该数字,但不知何故我没有出现在列表消息中,即使random 已从列表中调用。
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)
输出:
[7, 5]
然而,我不清楚allowed_val=allowed_val
应该做什么。它在您的代码中出现两次。此外,我认为您正在使用 while 循环来处理 alpha 等于 beta 的情况。在我看来,以下是首选:
alpha,beta = random.sample(allowed_val,2)
这将从 allowed_val 列表中分配两个不相同的值。在这种情况下,您不需要while True
循环
推荐阅读
- python - df.tail() 在 pyspark 替代品中?
- adobe - 如何在 AEM 上编辑 Teaser 的选项卡选项顺序?
- php - 如何在laravel中附加循环?
- snowflake-cloud-data-platform - 函数 EXTRACT 不支持 SnowFlake 中的 NUMBER(38,0) 参数类型
- javascript - 如何使用清除按钮“清除”我的计时器?
- laravel - Guzzle Post 多部分/表单数据 Laravel
- jenkins - 持续集成管道
- azure - 无法将 azure postgresql 私有数据库连接到 powerBI 数据源?
- html - 尝试在 Angular 中使用 ng-upload 上传文件时遇到“TypeError: Cannot read properties of undefined (reading 'memes')”
- c# - 将数据库生成的 ID 添加到 Entity Framework Core 中的种子数据