[Tutor] Dictionary Nesting
Kent Johnson
kent37 at tds.net
Mon Jan 31 22:14:00 CET 2005
jhomme wrote:
> Hi,
> If I want to put a dictionary in a dictionary, does the syntax for assigning and getting at the
> stuff in the inner dictionary look something like this:
> outer_dictionary[inner_dictionary][key] = 'value' > ?
If inner_dictionary is the key to outer_dictionary, then that is right. For example,
Create the outer dict:
>>> outer = {}
Create an inner dict:
>>> outer['outerkey'] = {}
Add a key/value pair to the inner dict
>>> outer['outerkey']['innerkey'] = 'myvalue'
>>> outer
{'outerkey': {'innerkey': 'myvalue'}}
Retrieve the inner dict:
>>> outer['outerkey']
{'innerkey': 'myvalue'}
Retrieve an entry from the inner dict:
>>> outer['outerkey']['innerkey']
'myvalue'
setdefault() is handy here because you may not know if the inner dict has been created yet when you
want to add an entry. If not, setdefault will do it for you:
>>> outer.setdefault('outerkey2', {})['innerkey2'] = 'anotherValue'
>>> outer
{'outerkey2': {'innerkey2': 'anotherValue'}, 'outerkey': {'innerkey': 'myvalue'}}
If the inner dict is there already setdefault will use it:
>>> outer.setdefault('outerkey2', {})['innerkey3'] = 'yetAnotherValue'
>>> outer
{'outerkey2': {'innerkey2': 'anotherValue', 'innerkey3': 'yetAnotherValue'}, 'outerkey':
{'innerkey': 'myvalue'}}
Kent
>
> Thanks.
>
> Jim
>
> _______________________________________________
> Tutor maillist - Tutor at python.org
> http://mail.python.org/mailman/listinfo/tutor
>
More information about the Tutor
mailing list