[英]IndexError but I don't know what is wrong
opponent = [1, 1, 1, 1, 1, 1]
我只想要列表“对手”中的第一个元素,因此我编写了代码:
opponent = int(opponent[0])
我用它来计算其他列表之一中“对手”的数量。
if wongames.count(opponent) == 2:
...blablabla
它说我的提交在该行引发了IndexError类型的异常。 “对手= int(对手[0])”。
为什么是这样? 我该如何解决? :(
您的反对者列表称为opponent
,稍后在您的代码中您将执行以下操作:
opponent = int(opponent[0])
覆盖先前的opponent
列表,因此现在opponent
名称改为引用整数。
下次您再次执行相同的操作:
opponent = int(opponent[0])
您正在尝试访问整数的[0]
索引,该索引显然无法正常工作,因为无法对整数进行索引。
解决方案:只需为这两个变量使用不同的名称。 我会打电话给清单上的opponents
:
opponents = [1, 1, 1, 1, 1]
opponent = opponents[0]
注意,由于它们已经是列表中的整数,因此您不需要int()
。 仅要将int()
从一种类型转换为另一种类型,例如,如果它是字符串'0'
而不是整数0
则只需使用int()
我不确定那里发生了什么,但是我怀疑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
希望这可以帮助! :)
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.