最好不要用完列表索引

时间:2012-08-05 02:43:15

标签: 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

除了:

之外,我看不到任何其他选项
if y - 1 > 0 and y + 1 < len(list) and x - 1 > 0 and x + 1 < len(list[y]):

这似乎不对......

1 个答案:

答案 0 :(得分:5)

解决此问题的常用方法是在网格周围添加一些“填充”,其中包含指示您不在网格中的标记值(例如0-1或{{1} } 或者其他的东西)。您的有效索引不是None0,而是size-11(列表长度为size)。