Python 索引器错误:列出for循环中超出范围的索引
我用python编写代码,但遇到了以下错误:Python 索引器错误:列出for循环中超出范围的索引,python,list,loops,for-loop,indexing,Python,List,Loops,For Loop,Indexing,我用python编写代码,但遇到了以下错误: if a1[i] == a1[i+1] == a1[i+2]: IndexError: list index out of range 我写了一个if条件,如果我的列表长度小于3,则中断for,但它不起作用 我的代码: numb = int(input()) a1 = [] a2 = [] a = 0 a1 = [int(i) for i in input().split()] for i in range(0, numb): a2.app
if a1[i] == a1[i+1] == a1[i+2]:
IndexError: list index out of range
我写了一个if条件,如果我的列表长度小于3,则中断for,但它不起作用
我的代码:
numb = int(input())
a1 = []
a2 = []
a = 0
a1 = [int(i) for i in input().split()]
for i in range(0, numb):
a2.append("empty")
for i in range(0, len(a1)-2):
if len(a1) < 3:
break
else:
if a1[i] == a1[i+1] == a1[i+2]:
a = a + 1
a2[i] = a
a2[i+1] = a
a2[i+2] = a
a1.remove(a1[i+2])
a1.remove(a1[i+1])
a1.remove(a1[i])
numb=int(输入())
a1=[]
a2=[]
a=0
a1=[int(i)表示输入中的i().split()]
对于范围内的i(0,麻木):
a2.附加(“空”)
对于范围(0,len(a1)-2)内的i:
如果len(a1)<3:
打破
其他:
如果a1[i]==a1[i+1]==a1[i+2]:
a=a+1
a2[i]=a
a2[i+1]=a
a2[i+2]=a
a1.移除(a1[i+2])
a1.移除(a1[i+1])
a1.移除(a1[i])
为什么我要面对这个错误?
如果我的条件不起作用,我的情况是否正常
此外,我很抱歉在我的问题中写了错误。您的循环从
0
转到len(a1)-2
,而您应该只转到len(a1)-3
:
使用i
时,让i
从0
转到len(a1)-1
使用
i
和i+1
时,让i
从0
转到len(a1)-2
当您使用
i
,i+1
和i+2
时,让i
从0
转到len(a1)-3
[…]如果我的列表长度小于3,则只需使用len()
函数即可。看,我尝试了这个,但是我遇到了同样的错误。您得到IndexError
的原因是您试图使用列表中不可用的索引。你应该找出你在哪里做这样的事情并纠正它。范围(0,len(a1)-2)
只计算一次,但是你用删除更改列表的len
@谢谢你,我的问题是解决。