How to access a list in a list in linear time and create indeterminate numbers of objects

advertisements

In Python, I'm currently working on a project. I am storing lines from a file as a list. In these lines, I want to delimit the strings by spaces and store the individual words from the line in an object.

Each line contains three "words" spaced apart. I want to store each word as an element in a class object. Since I do not know how many lines the user may have in the input file, these objects will be created in an indeterminate amount.

When I run through the list of lines and "split" them, I get a list within a list. I do not know what to do with the data in that form (without using a for-loop within a for-loop), I'm stuck here.

I already have the object class created with three fields and methods to access those fields. However, I do not know how to access the "list within a list" (in linear time) and delimit the words and easily and quickly create a new object with the words as the parameters.

If anyone could give me advice on where to go from here, I would appreciate it. Thank you.


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)

Update in response to comment:

To get a list of MyClass objects, one for each line in your input file:

with open("my_input_file.txt") as f:
    the_list = [MyClass(*line.split()) for line in f]