在Python

时间:2016-07-05 15:48:34

标签: python

我猜这将是一个非常简单的问题,但我还没有解决方案。

我有一个很长的代码,用于建模和更新变量值以进行优化。代码最初是这样编写的:

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")

我现在不想使用字典,因为它们需要对其余代码进行重大更改,并且调用字典会导致某些其他函数出现问题。在此先感谢您的帮助。

0 个答案:

没有答案