检查矩阵索引是否存在

时间:2013-06-01 12:49:02

标签: python matrix indexing cell exists

如何确认给定矩阵的索引是否存在?

例如:

matrix = [[1,2,3],[2,3,4][5,6,7]]

matrix[1][2]
4

但是,如果我做矩阵[3] [3],我会收到错误。

我知道我能做到:

try:
  array[idx]
except IndexError:

但如果idx为-1怎么办?索引不存在,但在python -1中返回索引0。 我该如何检查?

谢谢。

2 个答案:

答案 0 :(得分:4)

try:
    if idx1 < 0 or idx2 < 0: raise IndexError()
    array[idx1][idx2]
except IndexError:
    # do stuff

答案 1 :(得分:0)

def dictify(mat):
    return {
        (i, j): cell
        for i, row in enumerate(mat)
        for j, cell in enumerate(row)
    }

matrix = dictify([[1,2,3],[2,3,4], [5,6,7]])

assert (3, 3) not in matrix
assert (1, 0) in matrix

print matrix[1, 1]