i trying build dictionary containing defaultdicts:
from collections import defaultdict my_dict = { 'first_key':defaultdict(list) } my_dict['first_key'].extend('add list')
...but returns: attributeerror: 'collections.defaultdict' object has no attribute 'extend'
suggestions? thanks.
correct me if i'm wrong, don't think want dictionary of defaultdicts this. you're trying accomplished using built-in dict
method setdefault
:
>>> my_dict = {} >>> my_dict.setdefault('numbers', []).extend([1, 2, 3]) >>> my_dict {u'numbers': [1, 2, 3]} >>> my_dict.setdefault('numbers', []).append(4) >>> my_dict {u'numbers': [1, 2, 3, 4]}
setdefault
takes (possibly missing) key , default initialize if is missing. if key there, returns it.
as john kugelman points out in comments, can accomplished using defaultdict
in normal way:
>>> collections import defaultdict >>> my_dict = defaultdict(list) >>> my_dict defaultdict(<type 'list'>, {}) >>> my_dict['numbers'].extend([1, 2, 3]) >>> my_dict defaultdict(<type 'list'>, {u'numbers': [1, 2, 3]}) >>> my_dict['numbers'].append(4) >>> my_dict defaultdict(<type 'list'>, {u'numbers': [1, 2, 3, 4]})
Comments
Post a Comment