Re: Dictionary of Dicts question

Collapse
This topic is closed.
X
X
 
  • Time
  • Show
Clear All
new posts
  • Chris Rebert

    Re: Dictionary of Dicts question

    On Thu, Oct 16, 2008 at 12:19 PM, John Townsend <jtownsen@adobe .comwrote:
    I'm working with a Dictionary of Dicts. Something like this:
    >
    myDict = {
    'TestName': {
    'FileName':{
    >
    'ct_init':1234,
    >
    'psl_init':5678 ,
    >
    'total_test_tim e':7890,
    >
    'psl_shutdown': 8765,
    >
    'ct_shutdown':9 021,
    >
    'total_time':34 21,
    },
    }
    }
    >
    Accessing values is pretty straightforward (nice change from my Perl days).
    For example:
    >
    myDict['TestName']['FileName']['ct_shutdown']
    >
    in Python interpreter yields
    >
    9021
    >
    However, when I try to add, let's say, a new FileName entry, I end up
    replacing the previous FileName entry.
    >
    In Python interpreter, I try:
    >
    myDict['TestName'] = {'NewFileName': {}, }
    >
    I get
    >
    {'TestName': {'NewFileName': {}}}
    Right, this clobbers the existing entry with this new blank one. This
    is evidenced by the fact that you're performing an _assignment_ on a
    dictionary key rather than calling a _mutator_ method on a dictionary
    value. A dictionary has only one value for a given key (but
    importantly, that value can be a list).
    >
    So, how do I add a new entry without replacing the old entry?
    Switch to a Dict of Lists of Dicts and append to the appropriate list
    when adding the new entry, or preferably, start using objects instead
    of ad-hoc nested dictionaries.

    Regards,
    Chris
    --
    Follow the path of the Iguana...

Working...