Как проверить, находится ли вход в первом столбце матрицы - PullRequest
0 голосов
/ 11 ноября 2018

Я создал матрицу под названием rix.

rix = [[1,2,3],[4,5,6][7,8,9]]

И в качестве входных данных у меня есть переменная put, которая представляет собой один список длины 2, который представляет положение матрицы. Часть, в которой я борюсь, это как проверить, что переменная put представляет одну из позиций в первом столбце?

Ответы [ 3 ]

0 голосов
/ 11 ноября 2018

Вы используете len(rix), чтобы оценить количество строк и len(rix[0]) для оценки количества столбцов в вашей матрице

так

if len(rix) <= put[0]:
    return false
elif len(rix[0]) <= put[1]:
    return false
else:
    return true
0 голосов
/ 11 ноября 2018

Вы также должны учитывать отрицательные показатели.

def in_first_col(put, list2D):
    row_idx, col_idx = put

    # return False if we can't get the row
    try:
       row = list2D[row_idx]
    except IndexError:
       return False

    # return False if row is empty
    # return False if col_idx does not refer to first element of row
    return row and (col_idx == 0 or col_idx == -len(row))

Демо-версия:

>>> rix = [[1,2,3],[4,5,6],[7,8,9]]
>>> in_first_col([1,1], rix)
>>> False
>>> in_first_col([2,0], rix)
>>> True
>>> in_first_col([5,0], rix)
>>> False
>>> in_first_col([-2,-3], rix)
>>> True
0 голосов
/ 11 ноября 2018

Создайте свою функцию, чтобы она была общей; он должен принимать аргумент row_n ( номер строки ), представляющий, какую строку вы хотите проверить ее границы. Проверьте, существует ли row_n в списке rix. Затем сравните второй элемент put (, представляющий ожидаемую длину строки ) с длиной original row_n в списке rix.

Согласно вашему случаю, вы должны сравнить, если второй элемент put меньше или равен длине rix row_n, а затем вернуть свои логические значения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...