IndexError:使用If语句时列出索引超出范围

时间:2020-05-01 21:56:31

标签: python python-3.x

我无法理解为什么会出现此错误。 万一我不使用if语句,错误就消失了。

这是我的代码:

def merge_the_tools(string, k):
    # your code goes here
    nlist=[]
    nlistf=[]
    lin = list(string)
    for i in range(int(len(lin)/k)):
        nlist.append(lin[k*i:(k*i+k)])


    for i in nlist:
        for j in i:
            count=0
            for m in range(k):
                if i[m]==j:
                    count=count+1
                if count>1:
                    i.pop(m)
        nlistf.append(i)

    print(nlistf)


if __name__ == '__main__':
    string, k = input(), int(input())
    merge_the_tools(string, k)

1 个答案:

答案 0 :(得分:0)

正如另一位评论者所说,如果在迭代列表时对其进行突变,尤其是删除操作,则通常会遇到索引错误。

为避免这种情况,请尝试使用以下任一方法向后遍历列表:

reverse(list)

for i in range(len(list), 0, -1):