当我试着运行这个程序时,出现了一个错误:
值错误:列表.删除(x) :x不在列表中
然而,这种错误并不总是发生。我认为这是因为只有当返回的随机数已经被删除,但我不确定或如何修复它时才会发生。非常感谢大家的帮助。你知道吗
def main():
numbers = [1,2,3,4,5,6,7,8,9,10,]
count = 0
while count <= 3: #how many numbers to remove
count += 1
remove(numbers)
print (numbers)
done = input ("Enter to exit.")
def remove(numbers):
import random
randnum = random.randint(1,10)
numbers.remove(int(randnum))
main()
所以,我认为问题有两个方面。(1) 删除一些项目后,生成的随机数大于当前列表,并且(2)python列表是基于零的。你知道吗
因此,对于第一个问题,如果您之前已经删除了2项,并且随机数生成器创建了9,那么9位置将不再存在。因此,您需要根据列表的当前长度生成随机数:
randnum = random.randint(0,len(numbers) -1)
这应该保证随机数在列表中并且应该是可用的。你知道吗
对于第二个问题,需要考虑零位置(数组上的第一个位置)。因此,如果在python列表中有10个位置,那么这些位置的索引将是0到9,而不是1到10。因此,当你试图删除位置10,它不存在。在0处启动随机数生成器(如上所示),并在长度小于1处结束它。这应该包括名单上所有可能的职位。你知道吗
希望这有帮助。你知道吗
一个项目不能删除两次。它不存在。你知道吗
请使用Try:except:statement。你知道吗
等到您得到一个在列表中
in
的数字:您还可以使用
random.choice
(谢谢@WillemVanOnsem)并选择您知道存在的元素:相关问题 更多 >
编程相关推荐