[Tutor] Bigrams and nested dictionaries

Victor Bouffier victor at grupocdm.com
Mon Apr 3 17:40:59 CEST 2006


On Wed, 2006-03-29 at 00:15 -0500, Michael Broe wrote:
> Aha! John wrote:
> 
> "Are you sure you haven't mistakenly assigned something other than a  
> dict to D or D['d'] ?"
> 
> Thanks for the tip! Yup that was it (and apologies for not reporting  
> the problem more precisely). I hadn't initialized the nested  
> dictionary before trying to assign to it. (I think Perl doesn't  
> require initialization of dictionaries prior to assignment, which in  
> this case, would be a nice thing...)
> 

>  >>> D['c']['a'] = 1   #ooops
> Traceback (most recent call last):
>    File "<stdin>", line 1, in ?
> KeyError: 'c'
>  >>> D['c'] = {}
>  >>> D['c']['a'] = 1
>  >>> D
> {'a': {'a': 1, 'b': 2}, 'c': {'a': 1}}
> 

You can check if the dictionary key exists prior to assigning to it:

>>> if not D.has_key('c'):
...    D['c'] = {}
>>> D['c']['a'] = 1




More information about the Tutor mailing list