Какой генератор списков транспонирует (заменяет строки на столбцы) матрицу m?

Для квадратной матрицы подходит третий вариант: [[m[j][i] for j in range(len(m))] for i in range(len(m))]. Для прямоугольной число столбцов нужно брать отдельно.

Короткий ответ

Что ответить на собеседовании

Для квадратной матрицы подходит третий вариант: [[m[j][i] for j in range(len(m))] for i in range(len(m))]. Для прямоугольной число столбцов нужно брать отдельно.

Подробный разбор

Ответ с пояснениями

Условие

Какой генератор списков транспонирует (заменяет строки на столбцы) матрицу m?

[m[i][:] for i in range(len(m))]

[[m[i][j] for j in range(len(m))] for i in range(len(m))]

[[m[j][i] for j in range(len(m))] for i in range(len(m))]

[m_[:][i] for i in range(len(m))]

[m[:] for i in range(len(m))]

Ответ

Для квадратной матрицы подходит третий вариант: [[m[j][i] for j in range(len(m))] for i in range(len(m))]. Для прямоугольной число столбцов нужно брать отдельно.

transposed = [[m[row][col] for row in range(len(m))]
              for col in range(len(m[0]))] if m else []

Здесь предполагается, что все строки одинаковой длины. Внешний цикл выбирает исходный столбец, внутренний собирает его элементы из всех строк. Копирование строк или повторение m[:] не выполняет транспонирование.

ИИ-помощник для собеседований

Хочешь уверенно проходить собеседования?

Попробуй ИИ-помощник для собеседований: слышит вас и собеседника, анализирует экран, подсказывает ответы в реальном времени, работает без VPN и не попадает в захват экрана.

Подробнее