4

假设我有 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]):

这似乎不对...

4

1 回答 1

5

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

于 2012-08-05T02:50:07.160 回答