Ну, я сказал «сложно», потому что перешел с Matlab на Python. Хотя MATLAB подвергался критике как «неэлегантный» или «грязный в собственном соглашении об именах функций», в нем есть простой способ инициализации массива/вектора или матрицы.

Вектор-строка может быть инициализирован как row = [1 2 3 4] или row = [1,2,3,4], а вектор-столбец определяется как столбец = [1;2;3;4]. Для матрицы большего размера идея аналогична: matrix1 = [1 2;3 4]. Или вы можете просто указать один элемент в матрице, а другим элементам будет автоматически присвоено значение 0, которое вы, конечно, можете изменить позже.

Когда я начал использовать Python, мне было довольно утомительно присваивать значения массиву или матрице. Я знаю, что существуют хорошие инженерные числовые пакеты, такие как numpy и scipy, но они не легко доступны в некоторых системах онлайн-судей. Поэтому я просто использую структуру данных списка для представления массива и матрицы. *matrix1* выше будет matrix1=[[1,2],[3,4]]. Кажется, нет разницы между векторами-строками и векторами-столбцами. Первое, что мне не нравится в этом представлении, — это беспорядочный вид из-за чрезмерного использования квадратных скобок. Если это всего лишь вопрос внешнего вида, который во многом зависит от личных вкусов и предпочтений, то то, как создается и обновляется матрица, меня действительно беспокоит.

Это не так просто, как в Matlab. Я продолжал писать код на питоне, например

# wrong way to initialize a matrix in python
ans=[[]]
ans[1][0]=1
ans[5][5]=1

и выскочит ошибка «index out of range». Можно получить доступ к элементам матрицы таким образом с существующей матрицей, но не инициализировать матрицу. Чтобы создать матрицу, вы должны либо определить все элементы сразу, либо использовать метод list.append().

Думаю, меня просто избаловали простые математические операции, предлагаемые Matlab. В любом случае Python не предназначен для этой конкретной области.