Насколько я понимаю, у вас проблемы с содержимым самой матрицы.
В этом случае python имеет функцию enumerate
, которая может быть зациклена таким образом:
ls = ['a', 'b', 'c']
for n, i in enumerate(ls):
print(n, i)
Что даст следующий вывод:
0 a
1 b
2 c
По существу, каждая итерация по перечисляемому объекту дает кортеж с индексом итерации и самим элементом (я говорю это Вверху головы, я не уверен, является ли это кортежем или нет. Я рекомендую заглянуть дальше в Google, так как есть много отличных примеров).
Так что, в вашем случае, вы можете заполнить матрица путем умножения индекса итерации на само фактическое значение. Вот как я бы это сделал:
for it, n in enumerate(range(n)):
arr = []
for col in range(n): # since its a square matrix, you can reuse n
arr.append((col+1)*(it+1))
matrix.append(arr)
Еще лучше, вы можете использовать генератор, но это может немного сбить с толку.
for it, num in enumerate(range(n)):
matrix.append([(col+1)*(it+1) for col in range(n)])
Надеюсь, вы поняли, и, пожалуйста, прокомментируйте, если в моем ответе есть какие-то глупые ошибки.