Я пытаюсь удалить классы из списка на основе их hp. Я делаю крупномасштабный боевой симулятор для кампании D & D. Его простая программа, которая делает два списка классов и ямы их друг против друга.Удаление класса из списка
Я столкнулся с проблемой, когда дело доходит до удаления мертвых истребителей. Он отлично работает, если один истребитель умирает в раунде, но когда несколько умирают, он становится неуклюжим.
def check_human_deaths():
for i in range(len(goodguys)):
if goodguys[i].hp <= 0:
print('{} has died...'.format(goodguys[i].name))
goodguys.remove(goodguys[i])
Удаление мертвого бойца изменяет длину списка, метание ошибки индекса:
IndexError: list index out of range
Я не уверен, как поступить с удалением мертвых с поля боя. Любые советы приветствуются. Дайте мне знать, если я буду об этом по-настоящему неправильно.
Не изменяйте списки при их итерации по ним. – Jasper
http://stackoverflow.com/questions/1207406/remove-items-from-a-list-while-iterating-in-python –