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

时间:2013-05-04 17:28:19

标签: python variables dictionary

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

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}

我该怎么做?

2 个答案:

答案 0 :(得分:4)

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

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)

答案 1 :(得分:1)

不要使用本地人添加变量。特别是因为你实际上希望数据最终在字典中。只需从头开始将其添加到字典中:

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

完成!