我不明白为什么这段代码没有从一个列表中删除“tractic”(元组)【of tuples()】
def _cleanup(self):
for tactic in self._currentTactics:
if tactic[0] == "Scouting":
if tactic[1] in self._estimate.currently_visible:
self._currentTactics.remove(tactic)
elif tactic[0] == "Blank":
self._currentTactics.remove(tactic)
elif tactic[0] == "Scout":
self._currentTactics.remove(tactic)
我的IDE(pydev)的屏幕截图和进一步的调试信息可在以下位置获得:
http://imgur.com/a/rPVnl#0
编辑:我注意到了一个bug修复和一个改进。
为了澄清,“空白”正在被删除,“侦察”在必要时被删除,“侦察”战术并没有被删除。
最佳答案
您正在从列表中删除成员,同时正在对其进行迭代。这样做会遗漏列表中的某些元素。您需要对列表的副本进行迭代。
更改:
for tactic in self._currentTactics:
致:
for tactic in self._currentTactics[:]: