Pat wrote:
I can't figure out how to set up a Python data structure to read in data that looks something like this (albeit somewhat simplified and contrived):

States
   Counties
     Schools
       Classes
          Max Allowed Students
          Current enrolled Students

Nebraska, Wabash, Newville, Math, 20, 0
Nebraska, Wabash, Newville, Gym, 400, 0
Nebraska, Tingo,  Newfille, Gym, 400, 0
Ohio, Dinger, OldSchool, English, 10, 0

With each line I read in, I would create a hash entry and increment the number of enrolled students.


You might want something like this:

>>> import collections, functools
>>> int_dict = functools.partial(collections.defaultdict, int)
>>> curr = functools.partial(collections.defaultdict, int)
>>> # builds a dict-maker where t = curr(); t['name'] += 1  "works"
>>> for depth in range(4):
        # add a layer with a default of the preceding "type"
        curr = functools.partial(collections.defaultdict, curr)
>>> base = curr() # actually make one
>>> base['Nebraska']['Wabash']['Newville']['Math']['max'] = 20
>>> base['Nebraska']['Wabash']['Newville']['Math']['curr'] += 1
>>> base['Nebraska']['Wabash']['Newville']['Math']['curr']
  1
>>> base['Nebraska']['Wabash']['Newville']['English']['curr']
  0


--Scott David Daniels
[EMAIL PROTECTED]
--
http://mail.python.org/mailman/listinfo/python-list

Reply via email to