Alterna · учебный материал
Двумерные массивы
38.2: Двумерные массивы. Короткая теория, один пример и пошаговая трасса Python.
Что в этом материале
- Как это устроено
- Один пример в исполнении
- Запомнить
Содержание и основные понятия
Матрица — список строк. Первый индекс выбирает строку, второй — столбец: matrix[row][column].
суть и практика
9 класс
ЕГЭ №17
ЕГЭ №26
01
Как это устроено
Матрица — список строк. Два индекса всегда читаются в одном порядке: сначала строка, затем столбец.
Форма.
Для прямоугольной матрицы n = len(matrix), m = len(matrix[0]).
Доступ.
matrix[row][column] сначала выбирает строку, потом элемент в ней.
Независимые строки.
Каждая строка должна быть отдельным списком.
Обход.
Внешний цикл выбирает строку, внутренний — столбец или элемент строки.
02
Один пример в исполнении
Запусти короткую программу и переходи по строкам. Визуализатор показывает только код, текущую строку, переменные и вывод.
Выражение
[[0] * m] * n
создаёт n ссылок на одну строку: изменение одной ячейки повторится во всех строках. Правильная конструкция использует списковое включение и создаёт строку заново для каждого повтора. Диагональ квадратной матрицы имеет условие
row == column
; побочная диагональ —
row + column == n - 1
.
Карта алгоритма
Читай слева направо, затем запускай код.
1
Начало
2
Создать независимые строки
3
Выбрать строку 1
4
Изменить столбец 2
5
Вывести матрицу
03
Запомнить
Не используй [[0] * m] * n для изменяемой матрицы.
Проверь n = 0 до обращения matrix[0].
Для прямоугольной матрицы не подменяй m числом строк.
Синтаксис этой страницы
matrix[row][column]
Доступ к элементу: оба индекса должны лежать в допустимых границах.
len(matrix)
Число строк.
len(matrix[0])
Число столбцов при непустой прямоугольной матрице.
[[0] * m for _ in range(n)]
Создаёт n независимых строк длины m.
range(n)
Перебирает допустимые индексы строк.
sum(row)
Сумма одной строки чисел.
print
Печатает значение или учебное представление матрицы.