-2

当我运行我的代码时,我收到了这个 IndexError:

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
4

1 回答 1

3

您收到此错误是因为

  • 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错误,并帮助您调试代码!

于 2019-02-09T19:48:22.223 回答