Fredrik Lundh wrote: > if you restructure the list somewhat > d = ( > ('pid', ('Employee ID', 'int')), > ('name', ('Employee name', 'varchar')), > ('sal', ('Salary', 'float')) > ) > you can still loop over the list > ... > but you can easily generate an index when you need it: > index = dict(d)
That's exactly the kind of things I find myself doing too often and what I was talking about: You are using *two* pretty redundant data structures, a dictionary and a list/tuple to describe the same thing. Ok, you can use a trick to automatically create the dictionary from the tuple, but still it feels somewhat "unnatural" for me. A "ordered dictionary" would be the more "natural" data structure here. I also wanted to mention the uglyness in the definition (nested tuples), but then I understood that even an ordered dictionary would not eliminate that uglyness, since the curly braces are part of the Python syntax and cannot be used for creating ordered dictionaries anyway. I would have to define the ordered dictionary in the very same ugly way: d = odict(('pid', ('Employee ID', 'int')), ('name', ('Employee name', 'varchar')), ('sal', ('Salary', 'float'))) (Unless the Python syntax would be extend to use double curly braces or something for ordered dictionaries - but I understand that this is not an option.) -- Christoph -- http://mail.python.org/mailman/listinfo/python-list