Материалы по курсу «Основы программирования»

Лабораторная работа № 4. Списковые включения и чтение файлов

Задача 1. Чтение матрицы, load_matrix(filename) (2 балла)

Дан файл, содержащий таблицу целых чисел вида

11 12 13 14 15 16
21 22 23 24 25 26
31 32 33 34 35 36

Т.е. в каждой строке через пробел записаны числа. Требуется написать функцию

load_matrix(filename)

которая загружает эту таблицу из файла. Если в каждой строке находится одинаковое количество чисел, функция возвращает список списков целых чисел. В противном случае возвращает False.

Задачу следует решить с использованием списковых включений, циклы использовать НЕЛЬЗЯ!

Задача 2. Транспонирование матрицы, transpose(matrix) (1 балл)

Написать функцию transpose(matrix), которая выполняет транспонирование матрицы. Решить с использованием списковых включений.

>>> transpose([[1, 2, 3], [4, 5, 6]])
[[1, 4], [2, 5], [3, 6]]

Пояснение:

||1 2 3||      ||1 4||
||4 5 6||  =>  ||2 5||
               ||3 6||

(+1 балл за использование функции zip() или map())

Задача 3. Сумма элементов матрицы, msum(matrix) (1 балл)

Найти сумму всех элементов матрицы:

>>> msum([[1, 2, 3], [4, 5, 6]])
21
>>> msum(load_matrix('good.txt'))
423