Форум программистов, компьютерный форум, киберфорум
Python для начинающих
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.73/11: Рейтинг темы: голосов - 11, средняя оценка - 4.73
-9 / 1 / 0
Регистрация: 25.04.2015
Сообщений: 101

Создать матричный список из файла

18.09.2016, 16:23. Показов 2201. Ответов 5
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Ситуация такая: у меня есть текстовый файл, в котором записаны числа в виде матрицы. Например:[[1,3,44,5],[4,66,5,4]]
Мне нужно эту матрицу занести в List, т.е. создать матричный список, прочитав данные из файла. Например: a = [[1,3,44,5],[4,66,5,4]]
Все перепробовал, методов чтения мало, и читает, как строку, а перевод в int невозможен, т.к. есть символы ',' и '[]'

Помогите, пожалуйста! Структура файла может быть любой, лишь правильно занести это в список и был двумерный массив.
0
Лучшие ответы (1)
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
18.09.2016, 16:23
Ответы с готовыми решениями:

. Создать список, информационные поля которого содержат строки из файла (список фамилий учащихся, упорядоченный по алфав
Дд! Помогите, пожалуйста, надо переделать программу под условие: . Создать список, информационные поля которого содержат строки из файла...

Создать матричный калькулятор с двумя формами
Помогите. В курсаче надо создать матричный калькулятор, который будет сумировать, вычитать, перемножать матрицы, а так же умножать матрицу...

Создать список из чисел файла
В общем дал преподаватель задачку, и сказал, чтобы в условии просто заменить слово "очередь" на "список" а я что-то...

5
757 / 306 / 190
Регистрация: 20.05.2016
Сообщений: 593
18.09.2016, 19:16
Лучший ответ Сообщение было отмечено AkulPavel как решение

Решение

Самый очевидный способ
Python
1
2
3
line = "[[1,3,44,5],[4,66,5,4]]"
 
a = eval(line)
1
Заблокирован
19.09.2016, 08:27
Eval это не оч)
Мне кажеться мой вариант лучше:
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
class Parse:
    get_output = lambda self: self.head[0]
 
    def __init__(self, type_value):
        self.head = []
        self.lappend = [self.head.append]
        self.type_value = type_value
 
    def add(self, char):
        print('Char in add:', char)
        print(self.head)
        if char == '[':
            l = []
            self.lappend[-1](l)
            self.lappend.append(l.append)
        elif char == ']':
            self.lappend.pop()
        else:
            self.lappend[-1](self.type_value(char))
 
    def parse(self, line):
        buf = ''
        for char in line:
            if char == ']' or char == '[':
                if buf:
                    self.add(buf)
                    buf =''
                self.add(char)
                continue
            if char == ',':
                if buf:
                    self.add(buf)
                    buf = ''
                continue
            buf += char
        return self
 
 
print('Output', Parse(int).parse("[[1,3,44,5],[4,66,5,4]]").get_output())
0
Эксперт Python
 Аватар для dondublon
4653 / 2073 / 366
Регистрация: 17.03.2012
Сообщений: 10,183
Записей в блоге: 6
19.09.2016, 08:41
askurandrio, что это, Берримор? Самостоятельный парсинг? Фу-фу-фу.
У eval есть единственный недостаток - он небезопасен от зловредного кода. Ну так это можно обойти через ast.literal_eval.
1
757 / 306 / 190
Регистрация: 20.05.2016
Сообщений: 593
19.09.2016, 13:43
Ещё
Python
1
2
3
4
5
import json
 
line = "[[1,3,44,5],[4,66,5,4]]"
 
lst = json.loads(line)
- он, кажется, пошустрее eval (?)
1
-9 / 1 / 0
Регистрация: 25.04.2015
Сообщений: 101
19.09.2016, 19:58  [ТС]
Одна неувязка. Когда это строка, то работает, но если считываешь из файла, то подразумевалось, что он прочитает, как строку. Однако он пишет ошибку.... Мол этот объект может быть строкой, битом или другим объектом.
TypeError: eval() arg 1 must be a string, bytes or code object

Как быть?

Добавлено через 14 минут
А все получилось. Просто я писал так:
fA = open('A.txt','r')
n = eval(fA)

Но так норм:
n = eval(fA.read())
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
19.09.2016, 19:58
Помогаю со студенческими работами здесь

Создать двусвязный список из файла
Здравствуйте! Мне нужно создать двусвязный список из файла на Си(не C++). В файле содержатся 2 столбца с числами: первый - double x;...

Создать список из слов файла
Подскажите пожалуйста как написать программу, которая считывает текст по словам из файла и создаёт из него список.

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

Необходимо по данным из текстового файла создать список
Кусок кода из программы,(Функция struct list* from_file() )не получается из данных текстового файла построить новый список,хотя в саму...

Создать список из чисел первого и второго файла
Просмотрел темы про сортировку списков, но так и не полилось добиться сортировки. делаю задачу: В один файл заноситься упорядоченная...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Программный контроль заполнения реквизита табличной части документа
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: реализовать контроль заполнения реквизита "ПричинаСписания". . .
wmic не является внутренней или внешней командой
Maks 02.04.2026
Решение: DISM / Online / Add-Capability / CapabilityName:WMIC~~~~ Отсюда: https:/ / winitpro. ru/ index. php/ 2025/ 02/ 14/ komanda-wmic-ne-naydena/
Программная установка даты и запрет ее изменения
Maks 02.04.2026
Алгоритм из решения ниже реализован на примере нетипового документа "СписаниеМатериалов", разработанного в конфигурации КА2. Задача: при создании документов установить период списания автоматически. . .
Вывод данных в справочнике через динамический список
Maks 01.04.2026
Реализация из решения ниже выполнена на примере нетипового справочника "Спецтехника" разработанного в конфигурации КА2. Задача: вывести данные из ТЧ нетипового документа. . .
Программное заполнения текстового поля в реквизите формы документа
Maks 01.04.2026
Алгоритм из решения ниже реализован на нетиповом документе "ВыдачаОборудованияНаСпецтехнику" разработанного в конфигурации КА2, в дополнении к предыдущему решению. На форме документа создается. . .
К слову об оптимизации
kumehtar 01.04.2026
Вспоминаю начало 2000-х, университет, когда я писал на Delphi. Тогда среди программистов на форумах активно обсуждали аккуратную работу с памятью: нужно было следить за переменными, вовремя. . .
Идея фильтра интернета (сервер = слой+фильтр).
Hrethgir 31.03.2026
Суть идеи заключается в том, чтобы запустить свой сервер, о чём я если честно мечтал давно и давно приобрёл книгу как это сделать. Но не было причин его запускать. Очумелые учёные напечатали на. . .
Модель здравосоХранения 6. ESG-повестка и устойчивое развитие; углублённый анализ кадрового бренда
anaschu 31.03.2026
В прикрепленном документе раздумья о том, как можно поменять модель в будущем
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru