最好不要用完列表索引

Rus*_*pov 4 python

假设我有2D列表,我想检查上一个/下一个元素是否等于某个东西.什么是确保我不会进入最好的方式list[-1][-1]还是list[len + 1][len + 1]

这是我正在尝试做的一个例子:

if list[y + 1][x] == value and list[y - 1][x] == value:
    do something
elif list[y][x + 1] == value and list[y][x - 1] == value:
    do something else
... # end so on
Run Code Online (Sandbox Code Playgroud)

除了做以下事情,我看不到任何其他选项:

if y - 1 > 0 and y + 1 < len(list) and x - 1 > 0 and x + 1 < len(list[y]):
Run Code Online (Sandbox Code Playgroud)

哪个看起来不对......

Gre*_*ill 5

要解决这个问题的常用方法是添加包含哨兵值,表示你关闭网格(如一些"填充"网格周围0-1None或东西).您的有效指标,而不是被0size-1,是从1size(有一个列表的长度size+2).