I'm currently using the method below to define a multidimensional dictionary in python. My question is: Is this the preferred way of defining multidimensional dicts?
from collections import defaultdict
def site_struct():
return defaultdict(board_struct)
def board_struct():
return defaultdict(user_struct)
def user_struct():
return dict(pageviews=0,username='',comments=0)
userdict = defaultdict(site_struct)
to get the following structure:
userdict['site1']['board1']['username'] = 'tommy'
I'm also using this to increment counters on the fly for a user without having to check if a key exists or is set to 0 already. E.g.:
userdict['site1']['board1']['username']['pageviews'] += 1