【问题标题】:IndexError: list index out of range for nested listIndexError:嵌套列表的列表索引超出范围
【发布时间】:2016-05-24 09:41:25
【问题描述】:

我有一个包含 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

【问题讨论】:

  • 我认为您可能会进入负指数。你试过调试这个吗?

标签: python list indexing


【解决方案1】:

在 python 中,列表的索引以 [0] 开头。所以你的列表中有 5 个元素,min index = 0max index = 4。希望对你有帮助

【讨论】:

    【解决方案2】:

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

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

    并在返回while pos&lt;25之前添加pos=0

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-10-31
      • 2015-06-26
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多