Jedes Mal, wenn ich dieses Programm ausführen, bekomme ich diesen Fehler:Python 2.7 wirft Valueerror: list.remove (x): x nicht in der Liste
ValueError: list.remove(x): x not in list
Ich versuche, die Gesundheit eines einzigen Ausländer zu senken, wenn es wird von einem Bolzen getroffen. Dieser einzelne Alien sollte auch zerstört werden, wenn seine Gesundheit <= 0
ist. Ähnlich würde der Bolzen auch zerstört werden. Hier ist mein Code:
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
Die ValueError
geschieht auf der Linie aliens.remove(a)
. Zur Verdeutlichung sind sowohl die aliens
als auch die bolts
Listen von Wörterbüchern.
Was mache ich falsch?
ValueError auf welcher Linie? – asheeshr
aliens.remove (a) –
Für zukünftige Referenz ist das Problem mit diesem Code, dass ich über die Aliens-Liste zweimal geschleift, was einige Probleme verursacht, wenn Sie versuchen, aus der Liste zu entfernen. Das Entfernen des zweiten "für ein in Aliens" würde dieses Problem verhindern. –