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?

Respuestas a la pregunta(3)

Su respuesta a la pregunta