【发布时间】:2016-05-16 05:04:21
【问题描述】:
我正在使用一系列函数来填充高度嵌套的字典。我想知道是否有比下面示例中所示的长赋值字符串更简洁的方法来执行此操作。
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
【问题讨论】:
-
为什么你的数据结构嵌套得这么荒谬?可能不需要。
标签: python dictionary nested