假设我有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
除了:
之外,我看不到任何其他选项if y - 1 > 0 and y + 1 < len(list) and x - 1 > 0 and x + 1 < len(list[y]):
这似乎不对......
答案 0 :(得分:5)
解决此问题的常用方法是在网格周围添加一些“填充”,其中包含指示您不在网格中的标记值(例如0
或-1
或{{1} } 或者其他的东西)。您的有效索引不是None
到0
,而是size-1
到1
(列表长度为size
)。