如何调用循环中生成的变量

2024-09-25 08:28:29 发布

您现在位置:Python中文网/ 问答频道 /正文

我需要在一个循环中生成许多变量。我通过使用以下代码实现了这一点:

nBottom=list of initially unknown size
loc=locals()
for k,val in enumerate(nBottom) : loc["imp_local"+str(k)]=700
for k,val in enumerate(nBottom) : loc["imp_global"+str(k)]=600

现在我需要和他们一起工作,创建一个字典,比如:

dic1={'imp_local0': 700, ..., 'imp_localn': 700}
dic2={'imp_global0': 700, ..., 'imp_globaln': 700}

我该怎么做?你知道吗


Tags: of代码inforsizevallocunknown
2条回答

不要生成局部变量。只需生成字典:

dict1 = {'imp_local'+str(k):700 for k,val in enumerate(nBottom)}
dict2 = {'imp_global'+str(k):600 for k,val in enumerate(nBottom)}

有关详细信息,请参阅dict comprehensions (PEP 274)

永远不要使用局部变量添加变量。尤其是当你真的希望这些数据最终被放在字典里的时候。只需从一开始就将其添加到字典中:

nBottom=list of initially unknown size
dic1 = {}
dic2 = {}
for k,val in enumerate(nBottom) : dic1["imp_local"+str(k)]=700
for k,val in enumerate(nBottom) : dic2["imp_global"+str(k)]=600

完成!你知道吗

相关问题 更多 >