Как получить доступ к списку в списке за линейное время и создать неопределенное количество объектов - PullRequest
0 голосов
/ 09 мая 2011

В Python я сейчас работаю над проектом. Я храню строки из файла в виде списка. В этих строках я хочу разделить строки пробелами и сохранить отдельные слова из строки в объекте.

Каждая строка содержит три слова, разделенных друг от друга. Я хочу хранить каждое слово как элемент в объекте класса. Поскольку я не знаю, сколько строк может иметь пользователь во входном файле, эти объекты будут созданы в неопределенном количестве.

Когда я пробегаю список строк и «разделяю» их, я получаю список в списке. Я не знаю, что делать с данными в этой форме (без использования цикла for внутри цикла for), я застрял здесь.

У меня уже есть класс объектов, созданный с тремя полями и методами для доступа к этим полям. Однако я не знаю, как получить доступ к «списку в списке» (по линейному времени) и разделить слова, а также легко и быстро создать новый объект со словами в качестве параметров.

Если бы кто-нибудь мог дать мне совет о том, куда идти отсюда, я был бы признателен. Спасибо.

Ответы [ 2 ]

1 голос
/ 09 мая 2011
class MyClass(object):
    def __init__(self, word1, word2, word3):
        # your initialisation code here

for line in list_of_lines:
    words = line.split()
    assert len(words) == 3
    an_object = MyClass(*words)
    do_something_with(an_object)

Обновление в ответ на комментарий:

Чтобы получить список объектов MyClass, по одному на каждую строку во входном файле:

with open("my_input_file.txt") as f:
    the_list = [MyClass(*line.split()) for line in f]
0 голосов
/ 09 мая 2011

Зачем разделять их перед использованием?Почему бы не разбить строку, когда вам это нужно?

Какой-то псевдокодиш

for each line in list
    items = line split
    object(items)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...