Python 2.7 gera ValueError: list.remove (x): x não está na lista
Toda vez que executo este programa, recebo este erro:
ValueError: list.remove(x): x not in list
Eu estou tentando diminuir a saúde de um único alienígena sempre que ele é atingido por um parafuso. Esse único alienígena também deve ser destruído se sua saúde for<= 0
. Da mesma forma, o parafuso também seria destruído. Aqui está o meu código:
def manage_collide(bolts, aliens):
# Check if a bolt collides with any alien(s)
for b in bolts:
for a in aliens:
if b['rect'].colliderect(a['rect']):
for a in aliens:
a['health'] -= 1
bolts.remove(b)
if a['health'] == 0:
aliens.remove(a)
# Return bolts, aliens dictionaries
return bolts, aliens
oValueError
acontece na linhaaliens.remove(a)
. Só para esclarecer, tanto oaliens
ebolts
são listas de dicionários.
O que estou fazendo de errado?