IndexError:列表索引超出嵌套列表的范围

时间:2016-02-13 04:43:47

标签: python list indexing

我有一个列表,其中包含5个值的列表,如果列表中的值为== 5,则在尝试运行while循环时,我的索引超出范围错误。 这几乎是我的所有代码

from solverFuncs import *
puzzle = [[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0],[0,0,0,0,0]]

pos = 0
backtrack = 0
checks = 0

while pos <25:
    puzzle[pos/5][pos%5] += 1
    checks+=1
    if check_valid(puzzle,cages):
        pos+=1
    elif puzzle[pos/5][pos%5]==5:
        while puzzle[pos/5][pos%5]==5:
            puzzle[pos/5][pos%5]=0
            pos=pos-1
            backtrack+=1

错误即时显示:

File "solver.py", line 16, in <module>
while puzzle[pos/5][pos%5]==5:
IndexError: list index out of range

2 个答案:

答案 0 :(得分:0)

在python中,list的索引以[0]开头。因此,您的列表中包含min index = 0max index = 4的5个元素。希望它会有所帮助

答案 1 :(得分:0)

无论check_valid做什么,我认为你应该在第16行的while块中添加一个支票

while pos>=0 and puzzle[pos/5][pos%5]==5:

并在返回pos=0

之前添加while pos<25