Python - "Struct arrays" Python - "Struct arrays" python python

Python - "Struct arrays"


You want to create a class which contains name and place fields.

class Baz():    "Stores name and place pairs"    def __init__(self, name, place):        self.name = name        self.place = place

Then you'd use a list of instances of that class.

my_foos = []my_foos.append(Baz("foo", "Shop"))my_foos.append(Baz("bar", "Home"))

See also: classes (from the Python tutorial).


How about a list of dicts?

mydictlist = [{"name":"foo", "place":"Shop"},              {"name":"bar", "place":"Home"}]

Then you can do

>>> mydictlist[0]["name"]'foo'>>> mydictlist[1]["place"]'Home'

and so on...

Using your sample file:

mydictlist = []with open("test.txt") as f:    for line in f:        entries = line.strip().split(" ", 5) # split along spaces max. 5 times        mydictlist.append({"name": entries[0],                           "time1": entries[1],                           "time2": entries[2],                           "etc": entries[5]})

gives you:

[{'etc': 'Vizfoldrajz EA eloadas 1', 'name': 'Hetfo', 'time2': '10:00', 'time1': '8:00'},  {'etc': 'Termeszetfoldrajzi szintezis EA eloadas 1', 'name': 'Hetfo', 'time2': '14:00', 'time1': '12:00'},  {'etc': 'Scriptnyelvek eloadas 1', 'name': 'Hetfo', 'time2': '16:00', 'time1': '14:00'} ...]