Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/list/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python 索引器错误:列出for循环中超出范围的索引_Python_List_Loops_For Loop_Indexing - Fatal编程技术网

Python 索引器错误:列出for循环中超出范围的索引

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

我用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.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
@谢谢你,我的问题是解决。