Уведомления

Группа в Telegram: @pythonsu

#1 Дек. 4, 2018 11:58:18

incarnus
Зарегистрирован: 2017-05-18
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

данные с файла

Как считать данные нижеприведеного типа из файла в двумерный массив?
5 1 4 4 2
2 3 4 5 6
1 2 3 4 5
делал в паскале, а в пайтон не знаю.
спасибо.

Отредактировано incarnus (Дек. 4, 2018 18:35:37)

Офлайн

#2 Дек. 4, 2018 15:38:04

JOHN_16
От: Россия, Петропавловск-Камчатск
Зарегистрирован: 2010-03-22
Сообщения: 3292
Репутация: +  221  -
Профиль   Отправить e-mail  

данные с файла

если вы делали это в паскале, то вероятно вы имеете ввиду как считать из файла данные в двумерный массив?



_________________________________________________________________________________
полезный блог о python john16blog.blogspot.com

Офлайн

#3 Дек. 4, 2018 18:35:04

incarnus
Зарегистрирован: 2017-05-18
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

данные с файла

JOHN_16
если вы делали это в паскале, то вероятно вы имеете ввиду как считать из файла данные в двумерный массив?
да, все правильно

Офлайн

#4 Дек. 4, 2018 18:37:48

Rafik
Зарегистрирован: 2018-09-04
Сообщения: 231
Репутация: +  27  -
Профиль   Отправить e-mail  

данные с файла

Не совсем понятна задача:

incarnus
5 1 4 4 2
2 3 4 5 6
1 2 3 4 5
Так выглядит содержимое файла или так должны выглядеть считанные данные?
Если содержимое файла выглядит как-то так, то результат чтения вывести на экран построчно или записать в переменную?
Если это результат, то вывести его в таком виде на экран или загнать в переменную?

Офлайн

#5 Дек. 4, 2018 18:47:02

incarnus
Зарегистрирован: 2017-05-18
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

данные с файла

Rafik
Не совсем понятна задача:
содержимое файла так выглядит.
записать в двумерный масив для последующей обработки.

Офлайн

#6 Дек. 4, 2018 18:55:45

Rafik
Зарегистрирован: 2018-09-04
Сообщения: 231
Репутация: +  27  -
Профиль   Отправить e-mail  

данные с файла

Пока писал, прилетело уточнение.
Делается список в списке или кортеж в кортеже. Что-то типа m = [, , ]. Список - это матрица, а вложенный список - строка матрицы. Прочитать первую строку из матрицы m, прочитать со второй строки матрицы третий столбец m.
Предположим данные в файле расположены так же как в требуемой матрице и разделены пробелом.

 f = open('file_name.txt')
matr = []
for stro in f.read():
    stroka = list(map(int, stro.split()))
    matr.append(stroka)

Офлайн

#7 Дек. 4, 2018 18:59:12

Rafik
Зарегистрирован: 2018-09-04
Сообщения: 231
Репутация: +  27  -
Профиль   Отправить e-mail  

данные с файла

Посмотрел на свой ответ и обомлел. Часть текста съедена. Обернул в тег кода питон

 Что-то типа m = [[5, 1, 4, 4, 2], [2, 3, 4, 5, 6], [1, 2, 3, 4, 5]]. Список - это матрица, а вложенный список - строка матрицы. Прочитать первую строку из матрицы m[0], прочитать со второй строки матрицы третий столбец m[1][2].

Офлайн

#8 Дек. 6, 2018 15:59:24

incarnus
Зарегистрирован: 2017-05-18
Сообщения: 7
Репутация: +  0  -
Профиль   Отправить e-mail  

данные с файла

Rafik
Посмотрел на свой ответ и обомлел. Часть текста съедена. Обернул в тег кода питон
в результате работы Вашего кода на экран выводится:
Your text to link here…
это не совсем то, что нужно

Отредактировано incarnus (Дек. 6, 2018 16:03:24)

Офлайн

#9 Дек. 6, 2018 19:49:58

Rafik
Зарегистрирован: 2018-09-04
Сообщения: 231
Репутация: +  27  -
Профиль   Отправить e-mail  

данные с файла

Данные в файле расположены точно так:
строка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)

Офлайн

#10 Дек. 6, 2018 20:37:36

marvellik
Зарегистрирован: 2016-05-15
Сообщения: 639
Репутация: +  73  -
Профиль   Отправить e-mail  

данные с файла

 >>> 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]]
>>>

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version