在循环中更改变量
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
请问可以运行这样的代码循环吗?如何改变左边的变量?
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