如果异常列表索引超出范围,则将值设为零

Ras*_*nev 3 python exception-handling list

我正在用 python 做一些计算,如果它们在列表中,我必须对列表中的项目求和。这是代码:

Ei=-J*S[i][j]*(S[i+1][j]+S[i-1][j]+S[i][j+1]+S[i][j-1])
Run Code Online (Sandbox Code Playgroud)

我想要的是将给出错误的元素的值设为零 list index out of range。有没有办法在不验证和的每个元素是否存在的情况下做到这一点?

提前致谢

编辑

我不希望总和为 0,只希望给出错误的元素

Cor*_*mer 5

您可以使用try/编写函数except

def get_value(S, i, j):
    try:
        return S[i][j]
    except IndexError:
        return 0
Run Code Online (Sandbox Code Playgroud)

然后使用它

 Ei = -J * get_value(S, i, j) * (get_value(S, i+1, j) + get_value(S, i-1, j) +get_value(S, i, j+1) + get_value(S, i, j-1))
Run Code Online (Sandbox Code Playgroud)