コードのこのセクションは、リストから(タプル)の「戦術」を削除していない理由を私は理解することはできません[タプルの()]タプルのリストからvar [0]に基づいてタプルを削除しようとしましたが、いくつかは残っていますか?
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
編集:私が気づいた改善と改善。 明確にするため、「空白」が取り除かれ、必要に応じて「スカウト」が削除され、「スカウト」の戦術は削除されません。
あなたが反復処理しているリストを変更している参照してください... [この記事](http://stackoverflow.com/q/1207406/589206)を参照してください。 – hochl
変化するコレクションを反復する(特に要素が削除されたとき)ことはほとんどありません。通常、予期しない動作につながります。 – Fenikso
'copy.copy(self._currentTactics)の中の戦術:'はすばやく修正されるかもしれません。 – Fenikso