opponent = int(opponent[0])
我只想要列表'对手'中的第一个元素,因此我编码:
if wongames.count(opponent) == 2:
...blablabla
我用它来计算我的其他一个列表中的'对手'的数量。
{{1}}
它说我的提交引发了一个类型为IndexError的异常 线。 'opponent = int(opponent [0])'。
这是为什么?我该如何解决? :(
答案 0 :(得分:3)
您的对手列表名为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
答案 1 :(得分: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
希望这有帮助! :)