Дополнительная задача (вложенные списки)

Напишите код, который делает следующее:

  • Запрашивает у пользователя число строк квадратной матрицы (размерность матрицы, число строк равно числу столбцов)
  • Возвращает единичную матрицу заданной размерности

Пример единичной матрицы 3 на 3:

[[1 0 0], [0 1 0], [0 0 1]]

Подсказка: рассмотрите такой пример создания списка из одинаковых элементов:

In [3]:
[0] * 3
Out[3]:
[0, 0, 0]

Решение

Запросим число строк у пользователя и сделаем его целочисленным:

In [5]:
k = int(input("Введите число строк: "))
Введите число строк: 3

Создадим массив (вложенный список) M нужного размера (k на k) из 0:

In [7]:
M = []

for i in range(0, k):
    M.append([0] * k)
    
M    
Out[7]:
[[0, 0, 0], [0, 0, 0], [0, 0, 0]]

Теперь поставим на главную диагональ 1:

In [8]:
for i in range(0, k): # идем по строкам, i - номер строки
    for j in range(0, k): # идем по столбцам, j - номер столбца
        if i == j: # диагональ (номер строки равен номеру столбца)
            M[i][j] = 1 # заменим на 1
            
M
Out[8]:
[[1, 0, 0], [0, 1, 0], [0, 0, 1]]

Получилось:

In [9]:
k = int(input("Введите число строк: "))
Введите число строк: 5
In [10]:
M = []

for i in range(0, k):
    M.append([0] * k)
    
for i in range(0, k):
    for j in range(0, k):
        if i == j:
            M[i][j]=1
            
M
Out[10]:
[[1, 0, 0, 0, 0],
 [0, 1, 0, 0, 0],
 [0, 0, 1, 0, 0],
 [0, 0, 0, 1, 0],
 [0, 0, 0, 0, 1]]