如何使用嵌套for循环将函数多批次运行的输出存储为指定结构的嵌套字典
方案1:基于现有变量直接赋值
如果不需要调整现有变量定义,可直接手动给嵌套字典赋值,代码如下:
# 为每个运行批次赋值对应的输出结果 results["results"]["run1"] = { "output1_1": output1_1, "output1_2": output1_2, "output1_3": output1_3 } results["results"]["run2"] = { "output2_1": output2_1, "output2_2": output2_2, "output2_3": output2_3 } results["results"]["run3"] = { "output3_1": output3_1, "output3_2": output3_2, "output3_3": output3_3 }
方案2:循环实现(推荐)
你当前的代码存在大量重复定义,后续调整参数或新增批次非常麻烦,可以把入参统一管理后循环处理,自动生成符合要求的嵌套结构:
# 统一维护所有批次的入参,新增批次只需在列表内追加元素即可 batch_inputs = [ (a, b, c), # run1入参 (d, e, f), # run2入参 (g, h, i) # run3入参 ] results = {"results": {}} for idx, inputs in enumerate(batch_inputs, start=1): run_key = f"run{idx}" out1, out2, out3 = func(*inputs) results["results"][run_key] = { f"output{idx}_1": out1, f"output{idx}_2": out2, f"output{idx}_3": out3 }
方案2扩展性更强,即使后续需要增加到数十个运行批次,也不需要重复编写函数调用代码。
内容的提问来源于stack exchange,提问作者MAtennis9
相关产品推荐
相关产品推荐

