Да. Используйте new_matrix.insert(0,matrix[1][0])
.
insert(position,value)
позволяет вставлять объекты в определенные позиции в списке. В этом случае, поскольку вы хотите вставить число в начале, позиция равна нулю.
Обратите внимание, что это займет время O (n), если new_matrix имеет n элементов. Если new_matrix имеет 100 элементов, потребуется больше десяти раз, чтобы добавить что-то в начало, чем если бы оно было 10. Это намного медленнее, чем добавление чего-то в конец списка, что обычно занимает O (1): оно должно быть быстрым независимо как большой new_matrix. См. here для получения дополнительной информации о временной сложности операций python. Если вы будете регулярно добавлять элементы в начало списков, вам может понадобиться подумать о том, можете ли вы отменить то, что вы делаете.
Также обратите внимание, что так, как вы это делали, это даст вам новую_матрицу из [4, [1]]. Я не совсем уверен, чего вы хотите: если вы хотите получить окончательные результаты по мере их описания, тогда вам понадобится new_matrix = [1]
. Если ваш код верен (new_matrix = [[1]]
), и вы хотите [[4,1]]
, то вам нужно будет сделать new_matrix[0].insert(0,4)
. Если вы хотите [[4],[1]]
, вам нужно будет сделать new_matrix.insert(0,[4])
и так далее.
Как в стороне, поскольку вы, кажется, делаете что-то с матрицами, считаете ли вы, что используете numpy?
(Я хотел бы отметить, что, если этот ответ кажется немного не по теме, это потому, что этот вопрос был отредактирован, чтобы быть чем-то совершенно иное, чем первоначально просили.)
Что касается новый вопрос: хотя ответ Стефана хороший питон, вы можете слишком много работать. Понятно, что вы пытаетесь реализовать что-то вроде транспонирования матрицы, кроме зеркального отображения. Если вы делаете такие манипуляции, Numpy - много проще и быстрее. В этом случае, с Numpy массивами, вы просто должны сделать следующее:
import numpy as np # import numpy
matrix = np.array([[1, 2, 3], [4, 5, 6], [7, 8, 9]]) # Here's your matrix
new_matrix_1 = matrix[::-1,:] # Here's your matrix with all the rows reversed: [[7,8,9],[4,5,6],[1,2,3]]
new_matrix = new_matrix_1.T # Here's the transpose of that, which is what you want.
Хотя это только одна вещь, это сделает все вам сделать проще. Например, арифметика действительно будет работать: new_matrix+matrix
, 2*new_matrix
и т. Д. В противном случае вам придется реализовать это вручную.
Добавление сзади, добавление добавляет спереди. – TankorSmash
Является ли это массивным массивом? –
В массивах numpy нет метода добавления, поэтому я предполагаю, что это не так. – cge