运行代码时,我收到此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
答案 0 :(得分: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
,并帮助您调试代码!