#python-3.x #list #loops
#python-3.x #Список #петли
Вопрос:
Итак, что я точно хочу сделать, так это составить список списков из другого списка списков, но этот новый список занимает позиции каждого из списков в исходном списке и создает новый.
например.
[[5,6,3],[2,0,4],[3,8,5]]
стал бы
[[5,2,3],[6,0,8],[3,4,5]]
таким образом, новый список занимает 0-ю позицию в старых списках и 1-ю позицию и так далее.
Комментарии:
1. Чтобы перевернуть список по диагонали, наиболее распространенной идиомой является
list(zip(*your_list))
2. я только что попробовал это, но это просто вернуло мне список, который у меня уже был
Ответ №1:
Вы можете создавать отдельные списки, а затем объединять их в новые списки.
list = [[5,6,3],[2,0,4],[3,8,5]] new_list_0 = [list[i][0] for i in range(0, len(list))] new_list_1 = [list[i][1] for i in range(0, len(list))] new_list_2 = [list[i][2] for i in range(0, len(list))] new_list = [] new_list.append(new_list_0) new_list.append(new_list_1) new_list.append(new_list_2) print(new_list)
Но добавление новых списков будет обременительным.
list(zip(*list))
дает список кортежей
list_of_numbers = [[5,6,3],[2,0,4],[3,8,5]] new_list_of_numbers = list(zip(list_of_numbers[0], list_of_numbers[1], list_of_numbers[2])) print(new_list_of_numbers)
Выход:
[(5, 2, 3), (6, 0, 8), (3, 4, 5)]
Комментарии:
1. просто быстрый вопрос, если бы я хотел сделать это функцией, потому что исходный размер списка может варьироваться, как я мог бы это сделать