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?

questionAnswers(3)

yourAnswerToTheQuestion