B. Генератор матриц

Напишите функцию make_matrix, которая создаёт, заполняет и возвращает матрицу заданного размера.

Параметры функции:

  • size — кортеж (ширина, высота) или одно число (для создания квадратной матрицы);
  • value — значение элементов списка (по-умолчанию 0).

Примечание

Ваше решение должно содержать только функции.
В решении не должно быть вызовов требуемых функций.

Пример

Ввод

result = make_matrix(3)

Вывод

result = [
    [0, 0, 0],
    [0, 0, 0],
    [0, 0, 0]
]

Ввод

result = make_matrix((4, 2), 1)

Вывод

result = [
    [1, 1, 1, 1],
    [1, 1, 1, 1]
]

Решение

Развитие задач на умение работать с различным и типами входных данных в рамках одного и того же набора переменных – различное поведение программы при разных типах входных значений.

Обычно пишут две ветки в зависимости от того получили на вход одно число или кортеж/список элементов. Но по сути, можно обойтись универсальным алгоритмом, если вспомнить что квадратные матрицы это матрицы где размер по одной оси равен размеру по другой.

Посмотреть код

Решение

Python
# типовое решение

def make_matrix(size, value=0):
    if type(size) == int:
        return [[value for i in range(size)] for j in range(size)]
    else:
        return [[value for i in range(size[0])] for j in range(size[1])]

Решение

Python
# решение сведенное к единому алгоритму действий.

def make_matrix(size, value=0):
    if isinstance(size, int):
        size = [size, size]
    result = [[value] * size[0] for _ in range(size[1])]
    return result
Подписаться
Уведомить о
guest
0 комментариев
Старые
Новые Популярные
Межтекстовые Отзывы
Посмотреть все комментарии