2013-06-01 2 views
0

Как я могу подтвердить, что индекс существует для заданной матрицы?Проверьте, существует ли индекс матрицы

Например:

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. Как это проверить?

спасибо.

+0

Почему '-1' выдаст сообщение об ошибке? 'matrix [-1] [- 1]' дает мне '7' здесь,. – Eric

+0

Да, но я хочу, чтобы -1 был индексом в матрице .. (я знаю, что это индекс 0).) – Oren

ответ

4
try: 
    if idx1 < 0 or idx2 < 0: raise IndexError() 
    array[idx1][idx2] 
except IndexError: 
    # do stuff 
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] 
Смежные вопросы