我猜这将是一个非常简单的问题,但我还没有解决方案。
我有一个很长的代码,用于建模和更新变量值以进行优化。代码最初是这样编写的:
init_old(x,y):
return {(k):olddict[k][x][0]*prod[y] for k in realnames}
Q_house=init_old(“Q_house”,"P_house")
Q_car=init_old(“Q_car”,"P_car")
Q_holiday=init_old(“Q_holiday”,"P_holiday")
我已经可以通过理解来简化它了一下:
ListOfExpenses=["house","car","holiday"]
Q_house, Q_car, Q_holiday=[init_old(“Q_”+i,"P0_"+i) for i in ListOfExpenses]
我试图找到一种等效但更灵活的方式来编写最后一行,这样我就可以轻松地更改费用列表和“Q _...”变量:
ListOfExpenses=["house","car","holiday"]
ListOfCost=["Q_house","Q_car","Q_holiday"]
Elements_Of_ListOfCost=[init_old(“Q_”+i,"P0_"+i) for i in ListOfExpenses]
因此,当我稍后查找Q_house,Q_car或Q_holiday时,它会返回原始代码中计算的Q_house=init_old(“Q_house”,"P_house")
。
我现在不想使用字典,因为它们需要对其余代码进行重大更改,并且调用字典会导致某些其他函数出现问题。在此先感谢您的帮助。