Создание, вывод и ввод матрицы в Питоне
- Таким образом, получается структура из вложенных списков, количество которых определяет количество строк матрицы, а число элементов внутри каждого вложенного списка указывает на количество столбцов в исходной матрице.
- Вывод матрицы можно осуществить одним оператором, но такой простой способ не позволяет выполнять какой-то предварительной обработки элементов:
Для работы с матрицами в Python также используются списки. Каждый элемент списка-матрицы содержит вложенный список.
Рассмотрим пример матрицы размера 4 х 3:
matrix = [[-1, 0, 1], [-1, 0, 1], [0, 1, -1], [1, 1, -1]] |
Данный оператор можно записать в одну строку:
matrix = [[-1, 0, 1], [-1, 0, 1], [0, 1, -1], [1, 1, -1]] |
print(matrix) |
Результат:
- способ:
- способ:
1 2 3 4 5 | def printMatrix ( matrix ): for i in range ( len(matrix) ): for j in range ( len(matrix[i]) ): print ( "{:4d}".format(matrix[i][j]), end = "" ) print () |
В примере i – это номер строки, а j – номер столбца;
len(matrix) – число строк в матрице.
1 2 3 4 5 | def printMatrix ( matrix ): for row in matrix: for x in row: print ( "{:4d}".format(x), end = "" ) print () |
Внешний цикл проходит по строкам матрицы (row), а внутренний цикл проходит по элементам каждой строки (x).
1 2 3 4 | from random import randint n, m = 3, 3 a = [[randint(1, 10) for j in range(m)] for i in range(n)] print(a) |
Обработка элементов двумерного массива
Нумерация элементов двумерного массива, как и элементов одномерного массива, начинается с нуля.
Т.е. matrix[2][3]
— это элемент третьей строки четвертого столбца.
Найти произведение элементов двумерного массива.
✍ Решение:
1 2 3 4 5 | p = 1 for i in range(N): for j in range(M): p *= matrix[i][j] print (p) |
Найти сумму элементов двумерного массива.
✍ Решение:
1 2 3 4 | s = 0 for row in matrix: s += sum(row) print (s) |
Для поиска суммы существует стандартная функция sum.
Получены значения температуры воздуха за 4 дня с трех метеостанций, расположенных в разных регионах страны:
Номер станции | 1-й день | 2-й день | 3-й день | 4-й день |
---|---|---|---|---|
1 | -8 | -14 | -19 | -18 |
2 | 25 | 28 | 26 | 20 |
3 | 11 | 18 | 20 | 25 |
Т.е. запись показаний в двумерном массиве выглядела бы так:
t[0][0]=-8 | t[0][1]=-14 | t[0][2]=-19 | t[0][3]=-18 |
t[1][0]=25 | t[1][1]=28 | t[1][2]=26 | t[1][3]=20 |
t[2][0]=11 | t[2][1]=18 | t[2][2]=20 | t[2][3]=25 |
- Распечатать температуру на 2-й метеостанции за 4-й день и на 3-й метеостанции за 1-й день.
- Распечатать показания термометров всех метеостанций за 2-й день.
- Определить среднюю температуру на 3-й метеостанции.
- Распечатать, в какие дни и на каких метеостанциях температура была в диапазоне 24-26 градусов тепла.
Написать программу поиска минимального и максимального элементов матрицы и их индексов.
Написать программу, выводящую на экран строку матрицы, сумма элементов которой максимальна.
for i in range(N): # работаем с matrix[i][i] |
for i in range(N): # работаем с matrix[i][N-1-i] |
✍ Решение:
for i in range(N): c = A[i][2] A[i][2] = A[i][4] A[i][4] = c |
for i in range(N): A[i][2], A[i][4] = A[i][4], A[i][2] |
Составить программу, позволяющую с помощью датчика случайных чисел сформировать матрицу размерностью N. Определить:
Согласен, чувак. Зачем они такие легкие примеры дают? Мы и так знаемммм
x, y = 5, 3
array = [[0 for j in range(y)] for i in range(x)]
print(array)
# [[0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0], [0, 0, 0]]
Почему бы это нельзя было объяснить?