Python 2.7 lanza ValueError: list.remove (x): x no está en la lista
Cada vez que ejecuto este programa, me sale este error:
ValueError: list.remove(x): x not in list
Estoy tratando de disminuir la salud de un solo alienígena cada vez que es golpeado por un perno. Ese extraterrestre solo debe ser destruido si su salud es<= 0
. Del mismo modo, el cerrojo también sería destruido. Aquí está mi 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
losValueError
sucede en la líneaaliens.remove(a)
. Solo para aclarar, tanto elaliens
ybolts
Son listas de diccionarios.
¿Qué estoy haciendo mal?