Форум сайта python.su
Как считать данные нижеприведеного типа из файла в двумерный массив?
5 1 4 4 2
2 3 4 5 6
1 2 3 4 5
делал в паскале, а в пайтон не знаю.
спасибо.
Отредактировано incarnus (Дек. 4, 2018 18:35:37)
Офлайн
если вы делали это в паскале, то вероятно вы имеете ввиду как считать из файла данные в двумерный массив?
Офлайн
JOHN_16да, все правильно
если вы делали это в паскале, то вероятно вы имеете ввиду как считать из файла данные в двумерный массив?
Офлайн
Не совсем понятна задача:
incarnusТак выглядит содержимое файла или так должны выглядеть считанные данные?
5 1 4 4 2
2 3 4 5 6
1 2 3 4 5
Офлайн
Rafikсодержимое файла так выглядит.
Не совсем понятна задача:
Офлайн
Пока писал, прилетело уточнение.
Делается список в списке или кортеж в кортеже. Что-то типа m = [, , ]. Список - это матрица, а вложенный список - строка матрицы. Прочитать первую строку из матрицы m, прочитать со второй строки матрицы третий столбец m.
Предположим данные в файле расположены так же как в требуемой матрице и разделены пробелом.
f = open('file_name.txt') matr = [] for stro in f.read(): stroka = list(map(int, stro.split())) matr.append(stroka)
Офлайн
Посмотрел на свой ответ и обомлел. Часть текста съедена. Обернул в тег кода питон
Что-то типа m = [[5, 1, 4, 4, 2], [2, 3, 4, 5, 6], [1, 2, 3, 4, 5]]. Список - это матрица, а вложенный список - строка матрицы. Прочитать первую строку из матрицы m[0], прочитать со второй строки матрицы третий столбец m[1][2].
Офлайн
Rafikв результате работы Вашего кода на экран выводится:
Посмотрел на свой ответ и обомлел. Часть текста съедена. Обернул в тег кода питон
Отредактировано incarnus (Дек. 6, 2018 16:03:24)
Офлайн
Данные в файле расположены точно так:
строка1: 5 1 4 4 2
строка2: 2 3 4 5 6
строка3: 1 2 3 4 5
Откуда могли взяться пустоты? Результат выполнения int никогда не даёт пустоту. Всегда на выдаче целое число или выкидывает сообщение об ошибке, если не может преобразовать.
Отредактировано Rafik (Дек. 6, 2018 19:52:08)
Офлайн
>>> with open('input.txt') as f_inp: result = [list(map(int, x.split())) for x in f_inp.readlines()] >>> result [[5, 1, 4, 4, 2], [2, 3, 4, 5, 6], [1, 2, 3, 4, 5]] >>>
Офлайн