Python 2.7 zgłasza ValueError: list.remove (x): x nie jest na liście
Za każdym razem, gdy uruchamiam ten program, pojawia się ten błąd:
ValueError: list.remove(x): x not in list
Próbuję obniżyć zdrowie pojedynczego kosmity, gdy zostanie trafiony piorunem. Ten pojedynczy kosmita również powinien zostać zniszczony, jeśli jego zdrowie jest<= 0
. Podobnie, rygiel również zostałby zniszczony. Oto mój kod:
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
TheValueError
dzieje się na liniialiens.remove(a)
. Aby wyjaśnić, zarównoaliens
ibolts
to listy słowników.
Co ja robię źle?