我该怎么办?索引器:列表索引超出范围

2024-03-28 10:01:04 发布

您现在位置:Python中文网/ 问答频道 /正文

当我运行代码时,会收到以下索引器:

constraints[fr][to] = self.extra_constr[2]
IndexError: list index out of range

下面是我的代码示例:

def determine_constr(self, parent_constr):
    constraints = copy.deepcopy(parent_constr)
    if self.extra_constr == None:
        return constraints

    fr = self.extra_constr[0]
    to = self.extra_constr[1]
    constraints[fr][to] = self.extra_constr[2]
    constraints[to][fr] = self.extra_constr[2]

    for i in range(2):
        constraints = self.removeEdges(constraints)
        constraints = self.addEdges(constraints)

    return constraints

Tags: ofto代码selfindexreturnrangefr
1条回答
网友
1楼 · 发布于 2024-03-28 10:01:04

你得到这个错误是因为

  • fr超出了constraints的范围
  • to超出了constraints[fr]的范围
  • 或者2超出了self.extra_constr的范围

如果没有这些变量包含的更多细节,就很难更准确地回答你的问题

通过在代码中使用断言,可以再次检查是哪一个导致了错误。例如:

assert fr in range(len(constraints))
assert to in range(len(constraints[fr]))
assert 2 in range(len(self.extra_constr))

如果索引超出范围,它们将抛出AssertionError,并帮助您调试代码

相关问题 更多 >