【发布时间】:2016-06-13 04:01:07
【问题描述】:
我正在尝试根据其 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
我不确定如何将死者从战场上移走。任何提示表示赞赏。让我知道我是否以根本错误的方式处理此问题。
【问题讨论】:
-
在迭代列表时不要更改列表。
标签: python list class python-3.x