试图从元组列表中删除基于var[0]的元组时,是否有剩余的元组?

2024-09-23 08:20:08 发布

您现在位置:Python中文网/ 问答频道 /正文

我不明白为什么这段代码没有从[tuples()的列表]中删除“策略”(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)

my IDE(pydev)的屏幕截图以及进一步的调试信息可从以下网址获得: http://imgur.com/a/rPVnl#0

编辑:我注意到一个错误修复和一个改进。 为了澄清,“空白”被删除,“侦察”在必要时被删除,“侦察”战术不会被删除。你知道吗


Tags: 代码inself列表forifdef策略
1条回答
网友
1楼 · 发布于 2024-09-23 08:20:08

当您在列表上迭代时,您正在从列表中删除成员。这样做会丢失列表中的某些元素。您需要迭代列表的一个副本。你知道吗

更改:

for tactic in self._currentTactics:

收件人:

for tactic in self._currentTactics[:]:

相关问题 更多 >