Допустим, я получил следующую матрицу:
[[5,4,3,2], [8,7,6,5], [4,3,2,0]]
Я хочу создать 2 отдельные функции, которые создают список всех диагоналей справа налево и слева направо без использования модуля numpy!
Например:
[[4], [8,3], [5,7,2], [4,6,0], [3,5], [2]] # these are the right to left diagonals
Я пробовал несколько разных способов, но безуспешно.кроме того, я довольно широко сканировал переполнение стека для ответов, но не нашел ни одного, который не содержал бы numpy.
edit: вот код, который я написал, который должен обрабатывать некоторые диагонали:
L = [[5, 4, 3, 2], [8, 7, 6, 5], [4, 3, 2, 0]]
def search_diagonally_rtl(matrix):
num_of_rows = len(matrix)
num_of_cols = len(matrix[0])
diag_mat = list()
for i in range(0, num_of_rows):
diag_mat.append([matrix[i][0]])
row_index = 0
for row in diag_mat:
for k in range(0, row_index):
i = k
j = 1
while i >= 0:
row.append(matrix[i][j])
i = i - 1
j = j + 1
row_index += 1
вывод: [[5], [8, 4], [4, 4, 7, 3]]
, но должен быть: [[5], [8, 4], [4, 7, 3]]