在循环中创建变量并在 Python 中初始化它们

use*_*489 5 python arrays loops

我有 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
Run Code Online (Sandbox Code Playgroud)

这会创建一个元素数组,如 a_true、b_true 等。我想将它们作为变量而不是数组的元素,最后使用 param 中的值初始化它们。有什么可能性吗?如果这看起来微不足道,新手很抱歉。

预期输出:

[a_true, b_true, ..., j_true]=[34, 65, ... , 234]
Run Code Online (Sandbox Code Playgroud)

Chr*_*tin 5

您可以使用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
Run Code Online (Sandbox Code Playgroud)