Ich verwende eine Reihe von Funktionen, um ein stark verschachteltes Wörterbuch zu füllen. Ich frage mich, ob es eine sauberere Möglichkeit gibt, dies zu tun, als nur eine lange Zuordnungszeichenfolge, wie im folgenden Beispiel gezeigt.Erstellen stark verschachtelte Python-Wörterbücher in einer sauberen programmatischen Weise
outputdict = {}
outputdict['x']={}
outputdict['x']['y']={}
outputdict['x']['y']['total_patients']=len(example_dict.keys())
outputdict['x']['y']['z']={}
for variable1 in variable1s:
outputdict['x']['y']['z'][str(variable1)]={}
outputdict['x']['y']['z'][str(variable1)]['total_patients']=function_1(example_dict, variable1).count()
for popn in ['total','male','female']:
outputdict['x']['y']['z'][str(variable1)][popn]={}
for age_bucket in np.linspace(40,60,5):
age_str = str(age_bucket)+'_'+str(age_bucket+5)
outputdict['x']['y']['z'][str(variable1)][popn][age_str]={}
outputdict['x']['y']['z'][str(variable1)][popn]["total"]={}
for res in restypes:
if popn == 'total':
codelist, ncodes = function_2(function_1(example_dict, variable1), res, age_bucket)
else:
codelist, ncodes = function_2_gender(function_1(example_dict, variable1), res, age_bucket, popn)
outputdict['x']['y']['z'][str(variable1)][popn][age_str][res]={}
outputdict['x']['y']['z'][str(variable1)][popn][age_str][res]['total_codes']=ncodes
outputdict['x']['y']['z'][str(variable1)][popn][age_str][res]['top_codes']=[]
for item in codelist:
disp = {"code": item[0][:2], "value":item[0][2], "count":item[1]}
outputdict['x']['y']['z'][str(variable1)][popn][age_str][res]['top_codes'].append(disp)
codelist, ncodes = list_top_codes(function_1(example_dict, variable1), res)
outputdict['x']['y']['z'][str(variable1)][popn]["total"][res]={}
outputdict['x']['y']['z'][str(variable1)][popn]["total"][res]['top_codes']=[]
for item in codelist:
disp = {"code": item[0][:2], "value":item[0][2], "count":item[1]}
outputdict['x']['y']['z'][str(variable1)][popn]["total"][res]['top_codes'].append(disp)
outputdict
['aus Sammlungen Import defaultdict; outputdict = defaultdict (dict) '] (https://docs.python.org/2/library/collections.html#collections.defaultdict) –
Warum ist Ihre Datenstruktur so absurd verschachtelt? Es muss wahrscheinlich nicht sein. – user2357112