将字符串转换为变量引用

时间:2016-07-27 08:55:36

标签: python

我有一个字符串列表:

A = ['a', 'b', 'c', 'd']

我想有一个变量引用列表B:

B = [a, b, c, d]

我该怎么做?

EDIT1:

我有

df_wgt_dict["Freq"+vars_dict['varName'+str(I)]]

这里的范围是1到4。

我想要一个如下列表:

[df_wgt_dict["Freq"+vars_dict['varName'+str(1)],df_wgt_dict["Freq"+vars_dict['varName'+str(2)],df_wgt_dict["Freq"+vars_dict['varName'+str(3)],df_wgt_dict["Freq"+vars_dict['varName'+str(4)]]

2 个答案:

答案 0 :(得分:-1)

A = ['a', 'b', 'c', 'd']
B = []
for s in A:
    temp_storage = exec('%s = %d' % (s, my_value))
    B.append(temp_storage)

这将使用变量而不是字符串

更改列表B中的列表A.

答案 1 :(得分:-1)

你不能直接这样做。但是,如果要对这些变量执行某些操作,仍可以使用关键字exec或函数eval。这是两个不同的东西,产生不同的结果,但在这里你可以使用on或其他没有问题。

例如,这将打印5

a = 5
exec 'print a'

做一切你想要的简单技巧:

a = 5
b = 6
c = 2
d = 3

L = ['a', 'b', 'c', 'd']  # the input list

M = list()  # the result list
for e in L:
    exec 'M.append('+e+')'  # or eval('M.append('+e+')')
print M

这将打印

[5, 6, 2, 3]

注意:这不会创建变量引用列表,而是在调用此变量时列出变量值。如果您想要更新值,则必须再次调用它。