2017-04-04 130 views
-1
opponent = [1, 1, 1, 1, 1, 1] 

我只想要第一个元素在我的名单“对手”,所以我再代码:IndexError但我不知道什么是错

opponent = int(opponent[0]) 

我用它来再算上数量'对手的在我的其他名单之一。

if wongames.count(opponent) == 2: 
...blablabla 

它说我提交的 行提出型IndexError的异常。 'opponent = int(opponent [0])')。

这是为什么?我该如何解决? :(

+0

你的问题不清楚。你应该发布你的代码。你为什么要在这里给int赋一个int? INT(oppponent [0])。 – Wiredo

+1

将变量名称改为“对手”。您在步骤'opponent = int(opponent [0])''中将对手列表重新声明为整数。所以你不能把它用作列表。 – lpsandaruwan

回答

3

你的对手的名单被称为opponent,后来就在你的代码做:

opponent = int(opponent[0]) 

覆盖较早opponent名单,所以现在opponent名称指的是一个整数,而不是

下次你做同样的再次:

opponent = int(opponent[0]) 

你试图访问一个INTE的[0]指数ger,这显然不起作用,因为整数不能被索引。

解决方案:只需为两个变量使用不同的名称。我会打电话的名单opponents代替:

opponents = [1, 1, 1, 1, 1] 
opponent = opponents[0] 

注意,因为他们已经在列表中的整数,你不需要int()。你只需要使用int(),如果你想将它从一种类型转换为另一种,例如,如果它是一个字符串'0',而不是一个整数0

0

我不知道发生了什么,但我怀疑indexError是因为你是分配相同的opponent变量从列表中挑选元素opponent

如果你运行这个代码片段进行第二次迭代,变量opponent不再是列表了,也许这就是错误的原因。尝试改变赋值给一个新的变量。

opponent = [1, 1, 1, 1, 1, 1] 

## Code block 
opponent = int(opponent[0]) # Now opponent is not a list, just a number 
if wongames.count(opponent) == 2: 
    # do something 

如果代码块第二次执行,则会发生错误。尝试改变代码的东西如下,

opponent = [1, 1, 1, 1, 1, 1] 
first_opponent = int(opponent[0]) 
if wongames.count(first_opponent) == 2: 
    # do something 

希望这有助于! :)

相关问题