Dictionaries -- ahh the fun.. (newbie help)

Scott David Daniels scott.daniels at acm.org
Wed May 10 01:10:49 CEST 2006


rh0dium wrote:
> Hi all,
> 
> Can someone help me out.  I am trying to determing for each run whether
> or not the test should pass or fail but I can't seem to access the
> results ..
> 
> Alternatively can someone suggest a better structure ( and a lesson as
> to the reasoning ) that would be great too!!

Here's a little less convoluted version:

     cells = dict(NOR3X1=dict(lvs='pass', drc='fail'),
                  OR3X=dict(lvs='pass'),
                  AND3X1=dict(drc='fail'))

     for cell in cells:
         print cell
         for run, expect in cells[cell].items():
             print cell, run, "should", expect

Or even:

     for cell, expectations in cells.items():
         print cell
         for run, expect in expectations.items():
             print cell, run, "should", expect

You might prefer .iteritems rather than .items if the lists get huge.

* I use the dict(name=val [, name=val)*) form if the keys are symbols.
* Don't get any more indirect than you need to.
* A list of single-entry dictionaries is almost never a good idea;
   if you mean a list of pairs, use that.  if you mean a dictionary
   with a number of keys, use that.

-- 
-Scott David Daniels
scott.daniels at acm.org



More information about the Python-list mailing list