在循环中更改变量

Changing variables in the loop

请问可以运行这样的代码循环吗?如何改变左边的变量?

A = np.loadtxt('f1.txt', unpack=True)
B = np.loadtxt('f2.txt', unpack=True)
C = np.loadtxt('f3.txt', unpack=True)
D = np.loadtxt('f4.txt', unpack=True)

我试过了,但这不是 eval 函数的正确用法,对吧?

p = ['A', 'B', 'C', 'D']

#eval(p[0]) = np.loadtxt('f1.txt', unpack=True)

您不能使用 eval 给变量赋值。但是,您可以使用 locals() 字典进行分配 -

locals()['a'] = np.loadtxt('f1.txt')

但是,即使是这种方法也是 dangerous,因为您直接修改符号 table。文档说:

Note The contents of this dictionary should not be modified; changes may not affect the values of local and free variables used by the interpreter.

你可以尝试做类似 -

p = []
for i in range(1, 5):
    p.append(np.loadtxt(f'f{i}.txt')

#unpack subsequently
a, b, c, d = p