我有10个参数要初始化。遵循约定,它们被命名为a_true,b_true等。它们不是列表或数组而是独立变量。它们需要从长度为1X10的数组中初始化。
我打算做这样的事情,我知道它有它的缺点:
param=[34,65,...,234] # Contains initialization values
var=['a','b','c','d','e','f','g','h','i','j']
gvalues=[] # Array intended to contain variable names
k=0
for i in var:
gvalues.append(var[k]+'_true')
k+=1
这会创建一个像a_true,b_true等元素的数组。我想将它们作为变量而不是数组的元素,最后使用param中的值初始化它们。 任何可能性? 如果新手看起来微不足道,请对不起。
Output_intended:
[a_true, b_true, ..., j_true]=[34, 65, ... , 234]
答案 0 :(得分:2)
您可以使用locals()
和globals()
动态分配变量。
>>> param = range(10)
>>> var = 'abcdefghij'
>>> locals().update({'{}_true'.format(k): v for k, v in zip(var, param)})
>>> c_true
2
>>> f_true
5
答案 1 :(得分:1)
这里已经讨论过:
Using a string variable as a variable name
特别是这样的事情应该有效:
for k, v in zip(gvalues, params):
exec('%s = %s' % (k, v))
答案 2 :(得分:-1)
您可以通过字母列表并将每个字母与' _true'
连接起来import string
gvalues =[x+'_true' for x in string.ascii_lowercase]
print gvalues
输出:
['a_true', 'b_true', 'c_true', 'd_true', 'e_true', 'f_true', 'g_true', 'h_true', 'i_true', 'j_true', 'k_true', 'l_true', 'm_true', 'n_true', 'o_true', 'p_true', 'q_true', 'r_true', 's_true', 't_true', 'u_true', 'v_true', 'w_true', 'x_true', 'y_true', 'z_true']
如果你需要将它连接到所有字母(大写+小写。)
import string
gvalues =[x+'_true' for x in string.ascii_letters]
print gvalues
那会给你:
['a_true', 'b_true', 'c_true', 'd_true', 'e_true', 'f_true', 'g_true', 'h_true', 'i_true', 'j_true', 'k_true', 'l_true', 'm_true', 'n_true', 'o_true', 'p_true', 'q_true', 'r_true', 's_true', 't_true', 'u_true', 'v_true', 'w_true', 'x_true', 'y_true', 'z_true', 'A_true', 'B_true', 'C_true', 'D_true', 'E_true', 'F_true', 'G_true', 'H_true', 'I_true', 'J_true', 'K_true', 'L_true', 'M_true', 'N_true', 'O_true', 'P_true', 'Q_true', 'R_true', 'S_true', 'T_true', 'U_true', 'V_true', 'W_true', 'X_true', 'Y_true', 'Z_true']
<强>更新强>
如果你想用名称&#39; a_true&#39;创建变量。这不是最好的。但是,您可以使用词典。
这是使用keys
映射变量以获取values
的方法。
在这个例子中。 我们添加&#39; a_true&#39;作为关键,获得价值。
d= {'a_true':1, 'b_true':2, 'c_true':3, 'd_true':3}
print d['a_true']
会给你:1
print d['b_true']
会给你:2
答案 3 :(得分:-1)
您可以尝试使用字典,键是a_true,ect,值是数字。
字典= {}
的dict [ 'a_true'] = 35
等
或者你可以循环完成整个事情。