假设我有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)
哪个看起来不对......
要解决这个问题的常用方法是添加包含哨兵值,表示你关闭网格(如一些"填充"网格周围0或-1或None或东西).您的有效指标,而不是被0来size-1,是从1到size(有一个列表的长度size+2).