Я хочу создать полноценную матрицу из списка элементов, которые находятся ниже диагонали.Следующий список содержит элементы под диагональю: ![enter image description here](https://i.stack.imgur.com/DGpch.png)
И это будет желаемый результат:
![enter image description here](https://i.stack.imgur.com/LzQ4Y.png)
До этого момента я пытался заставить эту работу работать с обычным синтаксисом в python, внедрив следующий код:
list_similarities = [1,0.1,0.6,0.4,1,0.1,0.2,1,0.7,1]
the_range = range(0,4)
list_of_lists = []
counter_element = 0
counter = -1
for element in the_range:
counter += 1
counter_element += len(the_range)-element
intermediary = (len(the_range)-element)
first_element = counter_element-intermediary
line_list = list_similarities[first_element:counter_element]
# counter = 0, then no need to add an additional element
# print(line_list)
if counter == 0:
"do nothing"
elif counter >0:
for item in range(0,element):
from_list_to_add = list_of_lists[item]
element_to_add = from_list_to_add[item+1]
line_list.insert(0,element_to_add)
print(line_list)
list_of_lists.append(line_list.copy())
# print("final lists:", list_of_lists)
# print(counter_element)
print("final lists:", list_of_lists)
Однако вывод выглядит следующим образом:
окончательные списки: [[1, 0,1, 0,6, 0,4], [0,1, 1, 0,1, 0,2], [0,1, 0,1, 1, 0,7], [0,7, 0,1, 0,1, 1]]
Он делает первые 2 списка, которые представляют 2 строки из матрицы, но не будет делать последние 2 из-за того, как работает мой код, и пока я не знаю решения для этого ..
Это связано с тем, что мой счетчик сделает список вне диапазона.Я просмотрел множество сообщений о переполнении стека, но не могу найти то, что будет работать в моей ситуации.Если вы можете указать мне на подобный пример, это было бы идеально.
Спасибо за ваше время и предложения!
ОБНОВЛЕНИЕ: Мой вопрос не является дубликатом Numpy: преобразовать массив в треугольную матрицу , потому что я не хочу создавать матрицу, где мои значения из массива являются частью только нижней треугольной матрицы, а скорее они также находятся в верхней треугольной матрице.