检查矩阵索引是否存在

问题描述:

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

例如:

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

matrix[1][2] 
4 

但是,如果我这样做矩阵[3] [3]我会得到一个错误。

我知道我可以做:

try: 
    array[idx] 
except IndexError: 

但如果idx为-1?该索引不存在,但在蟒蛇-1返回索引0. 我该如何检查?

谢谢。

+0

为什么'-1'给你一个错误? '矩阵[-1] [ - 1]'在这里给我'7'。 – Eric

+0

是的,但我想-1是矩阵中的索引..(我知道它代表0索引..) – Oren

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

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]