Python 索引器:列出索引超出范围的空间入侵者

Python 索引器:列出索引超出范围的空间入侵者,python,loops,Python,Loops,我想创建一个额外的敌人。我有一个在列表中循环的问题。但是当我这样做时,我不断地得到这个错误: enemyX[i] += enemyX_change[i] IndexError: list index out of range 这是我的密码: num_of_enemies = 10 number = 1 enemyX = [] enemyX_change = [] for i in range(num_of_enemies): enemyX.append(i) enemyX_c

我想创建一个额外的敌人。我有一个在列表中循环的问题。但是当我这样做时,我不断地得到这个错误:

enemyX[i] += enemyX_change[i]
IndexError: list index out of range
这是我的密码:

num_of_enemies = 10
number = 1 
enemyX = []
enemyX_change = []
for i in range(num_of_enemies):
    enemyX.append(i)
    enemyX_change.append(3)

num_of_enemies += number
for i in range(num_of_enemies):
     enemyX[i] += enemyX_change[i]

第一个循环以包含10个元素的
enemyX
结束


然后将1添加到
num\u of_敌人
,并尝试更改
enemyX
的11个元素。在第一个循环中,将10个(num\u of_敌人的值)敌人添加到
enemyX
。然后,通过将
number
添加到
num\u of_敌人
,num\u of_敌人变为11。但是,在第二个循环中,您不是在
enemyX
中添加新的敌人,而是更改索引
i
处的当前值。因此,当这个循环到达最后一个值时,您会得到一个错误,因为
enemyX
中的索引10没有值

以下是我如何更改您的代码:

num_of_enemies = 10
number = 1 
enemyX = []
enemyX_change = []
for i in range(num_of_enemies):
    enemyX.append(i)
    enemyX_change.append(3)

for i in range(num_of_enemies):
     enemyX[i] += enemyX_change[i]
enemyX.append((num_of_enemies + number) + 3); //I'm adding 3 because that's what you've been adding as part of enemyX_change

根据您的一条评论,您希望在发生碰撞时添加一个新的敌人。 这是你想要的吗

num_of_enemies = 10
number = 1
enemyX = []
enemyX_change = []
for i in range(num_of_enemies):
    enemyX.append(i)
    enemyX_change.append(3)

for i in range(num_of_enemies):
    #Perform position change
    enemyX[i] += enemyX_change[i]
    #Add new enemy if more than one enemy has this position
    if enemyX.count(enemyX[i]) > 1:
        #Arrays start from zero (last index in list is num_of_enemies - 1)
        enemyX.append(num_of_enemies)
        enemyX_change.append(3)
        num_of_enemies += 1

在第一个循环之后,列表的长度为10,然后将1添加到
num\u of_敌人
中,因此当
i=10
时,您将得到一个索引错误。在第一个循环中,在列表enemyX中添加了10个元素。但稍后在第二个循环中,您将访问根本不存在的enemyX[10]。我建议您在最初创建列表时使用num_of_敌人,并使用len函数跟踪沿路的计数。我正在制作一个游戏,有10个敌人='num_of_敌人',我想在每次一个敌人碰撞时添加1个敌人,所以你的解决方案很有帮助,但不幸的是,它对我的项目没有帮助。很抱歉!看来你已经解决了,谢谢!但在你回答之前,我想明白了!所以我添加了另一个变量:“num_of_敌人_full=100”,最大敌人数,我不断添加更多敌人