3

我不明白为什么这部分代码没有从 List[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

编辑:我注意到的错误修复和改进。澄清一下,“空白”被删除,“侦察”在必要时被删除,“侦察”战术并没有被删除。

4

1 回答 1

3

在迭代列表时,您正在从列表中删除成员。通过这样做,您将错过列表中的某些元素。您需要迭代列表的副本。

改变:

for tactic in self._currentTactics:

至:

for tactic in self._currentTactics[:]:
于 2012-04-24T11:31:20.333 回答