擅长:python、mysql、java
<p>在列表上迭代时,不能从列表中删除项:</p>
<pre><code>def die(self):
for enemy in EnemyList:
if enemy.rect.x<100:
EnemyList.remove(enemy)
</code></pre>
<p>你可以这样写:</p>
<pre><code>def die(self):
global EnemyList
EnemyList = [enemy for enemy in EnemyList if enemy.rect.x>=100]
</code></pre>
<p>需要<code>global</code>语句,以便函数可以修改<code>EnemyList</code>,在本例中,它不在其作用域内。</p>
<p>或者将要删除的敌人存储到另一个列表中,然后再将其删除。</p>