在Python中使用列表元素作为变量名

在Python中使用列表元素作为变量名,python,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_holida

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

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

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”)
在原始代码中计算


我现在不想使用字典,因为它们需要对代码的其余部分进行重大更改,而调用字典会导致其他一些函数出现问题。提前谢谢你的帮助

字典就是你要用的东西。其他任何东西都将模拟一个,因为您需要将键映射到值的东西。您的其他代码是如何中断的?Python开发人员显然设计了一种更简单的方法来实现您的意图。尝试创建自己的字典不是一个好主意。如果你不能实现一个字典,那就是你完全错了。当你开始需要使用过于复杂的东西来处理像字典这样简单的东西时,你就会意识到这一点。我真的建议你完全重新构造你的代码。你的问题不是试图在你已经做过的事情的基础上创建一些已经存在的事情,而是在已经存在的事情的基础上创建一些你可以做的事情。好的,快速回答这个问题。我试图简化别人编写的代码,在重新编写整个代码之前,我只想确保没有更简单的方法来解决它。不过,你可能是对的。目前,许多相互依赖的功能正在寻找这款Q_汽车,。。变量和失败。之后,它们被包括在其他字典和优化程序使用的约束函数中。从字典中定义这些词似乎已经很复杂了。基本上我还没有完全破译代码,但也许这是唯一要做的事情。你会使用字典。其他任何东西都将模拟一个,因为您需要将键映射到值的东西。您的其他代码是如何中断的?Python开发人员显然设计了一种更简单的方法来实现您的意图。尝试创建自己的字典不是一个好主意。如果你不能实现一个字典,那就是你完全错了。当你开始需要使用过于复杂的东西来处理像字典这样简单的东西时,你就会意识到这一点。我真的建议你完全重新构造你的代码。你的问题不是试图在你已经做过的事情的基础上创建一些已经存在的事情,而是在已经存在的事情的基础上创建一些你可以做的事情。好的,快速回答这个问题。我试图简化别人编写的代码,在重新编写整个代码之前,我只想确保没有更简单的方法来解决它。不过,你可能是对的。目前,许多相互依赖的功能正在寻找这款Q_汽车,。。变量和失败。之后,它们被包括在其他字典和优化程序使用的约束函数中。从字典中定义这些词似乎已经很复杂了。基本上我还没有完全破译密码,但也许这是唯一要做的事情。