Generalizing what I think the situation is, "A dict is the best data
structure for the parsing phase, but I need a list later to hand off to
legacy interfaces".
No problem. Parse the data using a dict, then convert the dict to a
list later. I haven't been following all the details here, but just
wanted to point out that using different data structures to hold the
same data at different phases of a program is a perfectly reasonable
approach.
Indeed, assuming the requirement is to have a list of some length n units
representing integer keys into a range of values from start to end, and
he creates a dict initially:
list = [ dict.get(x,None) for x in range(start,end + 1) ]
Examples:
dic = {1:"fred", 9:"jim", 15:"susan", 25:"albert" }
l = [ dic.get(x,None) for x in range(1,20) ]
l
['fred', None, None, None, None, None, None, None, 'jim', None, None,
None, None, None, 'susan', None, None, None, None]
l = [ dic.get(x,None) for x in range(-10,50) ]
l
[None, None, None, None, None, None, None, None, None, None, None, 'fred',
None, None, None, None, None, None, None, 'jim', None, None, None, None,
None, 'susan', None, None, None, None, None, None, None, None, None,
'albert', None, None, None, None, None, None, None, None, None, None,
None, None, None, None, None, None, None, None, None, None, None, None,
None, None]60
then the value of l[offset] will either be None or some string depending
on the offset into the list