Mỗi lần tôi chạy chương trình này, tôi nhận được lỗi này:Python 2,7 ném ValueError: list.remove (x): x không có trong danh sách
ValueError: list.remove(x): x not in list
Tôi cố gắng để làm giảm sức khỏe của một người ngoài hành tinh duy nhất bất cứ khi nào nó bị trúng một tia. Người nước ngoài độc thân đó cũng nên bị phá hủy nếu sức khỏe của nó là <= 0
. Tương tự, bu lông cũng sẽ bị phá hủy. Đây là mã của tôi:
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
ValueError
xảy ra trên dòng aliens.remove(a)
. Chỉ cần làm rõ, cả hai aliens
và bolts
là danh sách các từ điển.
Tôi đang làm gì sai?
ValueError trên dòng nào? – asheeshr
aliens.remove (a) –
Để tham khảo trong tương lai, vấn đề với mã này là tôi lặp lại danh sách người ngoài hành tinh hai lần, điều này gây ra một số vấn đề khi cố gắng xóa khỏi danh sách. Loại bỏ 'thứ hai cho người ngoài hành tinh' thứ hai sẽ ngăn chặn vấn đề này. –