2017-07-01 158 views
1

如何将变量名赋值给变量以获取变量的值? 这工作如何将变量名赋值给变量以获取变量的值?

a=1 
b=a 

其输出,如果你使用的print(b)你会得到1.But如果我用这个,

for i in range (0,a1,2): 
    r=i/2 
    e[r] ='c%s'%i 
    print(e[r]) 

(C0,C2,C4,......有一个值) 然后它会输出c0,c2,c4 ... 我怎样才能让它输出c0,c2,c4 ...的值? 我尝试将''更改为" ",但它仍然无效。

+0

使用字典,如'{ 'C0':1, 'C2':7,...}'。 –

+0

如果我正确理解这一点,您正在寻找eval。 https://stackoverflow.com/questions/295058/convert-a-string-to-preexisting-variable-names –

+0

@ConnorWilson,...这是一个危险的(字面意思是,在安全错误倾向意识)路径发送有人下来,当适应最佳实践的响应式答案也可用。 –

回答

1

使用dict来存储你的 “变量” 命名变量:

>>> variables = {} 
>>> prefix = 'c' 
>>> variables[prefix + '0'] = 123 
>>> variables[prefix + '0'] 
123 
>>> variables['c0'] # is the same thing as the above 
123 
1

不要使用

c0, c2, c4, ... 

但使用

c[0], c[2], c[4], ... 

,然后改变你的循环

for i in range (0,a1,2): 
    r=i/2 
    e[r] ='c%s'%i 
    print(e[r]) 

for i in range (0,a1,2): 
    r=i/2 
    e[r] = c[i]  # Here is the difference 
    print(e[r]) 
+0

可能还会介绍如何初始化'c'。 –