Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/python/340.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 试图从元组列表中删除基于var[0]的元组时,是否有剩余的元组?_Python_Python 2.7_Pygame_Pydev - Fatal编程技术网

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

Python 试图从元组列表中删除基于var[0]的元组时,是否有剩余的元组?,python,python-2.7,pygame,pydev,Python,Python 2.7,Pygame,Pydev,我不明白为什么这段代码没有从[元组()列表]中删除“策略”(元组) my IDE(pydev)的屏幕截图以及进一步的调试信息可从以下网址获得: 编辑:我注意到一个bug修复和一个改进。 为了澄清,“空白”将被删除,“侦察”将在必要时被删除,“侦察”战术不会立即被删除。您在迭代列表时将从列表中删除成员。这样做会丢失列表中的某些元素。您需要迭代列表的一个副本 更改: for tactic in self._currentTactics: 致: 您正在修改正在迭代的列表。。。有关问题描述,请参阅。

我不明白为什么这段代码没有从[元组()列表]中删除“策略”(元组)

my IDE(pydev)的屏幕截图以及进一步的调试信息可从以下网址获得:

编辑:我注意到一个bug修复和一个改进。
为了澄清,“空白”将被删除,“侦察”将在必要时被删除,“侦察”战术不会立即被删除。

您在迭代列表时将从列表中删除成员。这样做会丢失列表中的某些元素。您需要迭代列表的一个副本

更改:

for tactic in self._currentTactics:
致:


您正在修改正在迭代的列表。。。有关问题描述,请参阅。迭代更改集合(尤其是删除元素时)很少是个好主意。它通常会导致意外的行为。
对于copy.copy(self.\u currenttracties)中的策略:
可能是一个快速解决方案。我倾向于
copy.copy()
比列表切片更明确、更具描述性。[:]工作得更好。虽然我有一大堆怪癖,但我仍在努力,这已经很容易处理了。我不知道@Fenikso所说的copy.copy()是什么意思?@Vikram Saran-很高兴能帮上忙
[:]
copy.copy()
做同样的事情,但Fenikso更喜欢
copy.copy()
,因为它更“可读”,因此可能比使用
[:]
更容易理解它是在进行复制(顺便说一句,这称为列表片)。
for tactic in self._currentTactics:
for tactic in self._currentTactics[:]: