我在做一个迷你学校项目,我得到了标题中提到的错误e。如何解决我的错误
这是一个迷你“足球经理”项目,我知道我的错误是这一行
equipas=['Napoli','Inter','Milan','Roma','Sampdoria','Atalanta','Lazio','Fiorentina','Torino','Sassuolo','Parma','Genoa','Cagliari','SPAL','Udinese','Empoli','Bologna','Frosinone','Chievo']
for m in range(0,99):
try:
z=equipas[m]
except IndexError:
a+=1
if a==3:
break
else:
equipa=equipas[m]
equipas.remove(equipa)
pontos=random.randint(0,57)
equipa=equipa,pontos
listaequipa.append(equipa)
print(listaequipa)
当程序打印变量listaequipa
时,我只在最后一行得到:
[('Napoli', 44), ('Milan', 57), ('Sampdoria', 31), ('Lazio', 14), ('Torino', 3), ('Parma', 13), ('Cagliari', 51), ('Udinese', 8), ('Bologna', 21), ('Chievo', 38)]
使用从列表中删除项目时
它不会用空值替换该项,而是将其完全删除,其余元素将取代它。例如:
循环第一次通过后,数组现在看起来像:
然后for循环增加
x
,因此它删除了当前列表中的第二个元素:以此类推,跳过原始列表的每一秒值
所以请仔细阅读你的代码,看看会发生什么
希望这有帮助:)
您不应该迭代列表的索引,同时从列表中删除元素。这就是导致错误的原因
幸运的是,你有几个选择,选择一个你更舒服的:
None
)标记要删除的项,然后使用filter
或列表同时删除所有项李>相关问题 更多 >
编程相关推荐