Первые элементы списка списков list python
У меня есть список списков:
[[0.1, 0.2, 0.3],
[0.4, 0.5, 0.6,],
[0.7, 0.8, 0.9]]
Как я могу получить каждый первый элемент из каждого списка, потом каждый второй и тд. и записать все в список списков:
[[0.1, 0.4, 0.7],
[0.2, 0.5, 0.8],
[0.3, 0.6, 0,9]]
Ответы (2 шт):
Автор решения: GrAnd
→ Ссылка
Эта операция называется "транспонирование матрицы" (поворот матрицы относительно своей главной диагонали). В Питоне это делается в одну строчку:
m = [[0.1, 0.2, 0.3],
[0.4, 0.5, 0.6],
[0.7, 0.8, 0.9]]
t = list(map(list, zip(*m)))
[[0.1, 0.4, 0.7],
[0.2, 0.5, 0.8],
[0.3, 0.6, 0.9]]
Если вместо списка списков сойдёт и список кортежей, то вызов map() можно выкинуть.
Автор решения: vlados155
→ Ссылка
Можно попробовать так:
start_list = [
[0.1, 0.2, 0.3],
[0.4, 0.5, 0.6,],
[0.7, 0.8, 0.9]
]
new_list = []
lst = []
for i in range(len(start_list)):
for c in start_list:
lst.append(c[i])
new_list.append(lst)
lst = []
print(new_list)
Понимаю, что можно сделать гораздо короче, но этот код для тех, кто обладает начальными знаниями языка.