Как создать вложенные списки внутри списка для построения матрицы на Python?
Вводные данные:
Число N - кол-во строк и колонок. # допустим 3
Строка X - список чисел через пробел. # допустим 1 2 3 4 5 6 7 8 9
Нам нужно получить такую матрицу:
[[1, 2, 3], [4, 5, 6], [7, 8, 9]]
Я могу это сделать, когда использую генератор списков и когда числа поступают последовательно через инпут. Но как условие стало "строка с пробелами" я ушел в затуп. Подскажите, пожалуйста. Буду очень благодарен.
Единственное, что я сделал, это:
arr = input().split()
И получил -> [1, 2, 3, 4, 5, 6, 7, 8, 9]
Ну смотри, я так понимаю задача сделать это на чистом python, если что у numpy массива имеется reshape() метод, который делает все это прекрасно, просто введешь размерности и если операция возможна n*m должно давать длинна массива он выполнит преобразование.
На чистом python задача указать количество колонок, это будет размер внутреннего списка. То есть ну как то так
l = [int(i) for i in '1 2 3 4 5 6 7 8 9'.split()]
m=3
result = [l[i:i+m] for i in range(0, len(l), m)]
Михаил Кростелев, А что там расписывать. Как работать со слайсами? Я специально такое решение дал, для читабельности, сам бы я так не написал а сделал бы через itertools.
Михаил Кростелев, Я копипастом не занимаюсь, обязательно для себя разобрал, как этот генератор работает. Это не новая для меня тема, просто данное условие задачи не смог с помощью генераторов списков сделать, поэтому и попросил помощи.