Python循环更新多个变量

Python loop to update multiple variables

假设 a、b、c、d 都是预先存在的 pandas 个数据帧。

我想创建一个循环,将这些数据帧中的每一个转换为 numpy 数组,然后打印一条消息说明数组的形状(理想情况下是一条消息,如“数组 'b' 的形状是 . ..“ ETC)。 重要的是,我想为新的 numpy 数组重新使用原始变量名

我尝试了以下几种变体:

data = [a, b, c, d] 

for i in range (len(data)):
   data[i] = data[i].values
   print('The shape of array xx is' + str(data[i].shape))
   

上面的问题是,当它更新列表的内容时,原始数据帧本身(a、b、c、d)没有更新,我不确定如何引用变量打印消息时列表中的名称。我可能会写一些后续代码,其中 a = data[0] 等,但这似乎效率低下。

我认为这应该很容易,但我没有找到太多运气...... 提前致谢

不建议使用exec,但这回答了你的问题

for i in list("abcd"):
    exec(f'{i} = {i}.values')

此外,如果你想打印形状

for i in list("abcd"):
    exec(f'{i} = {i}.values')
    exec(f'shape = {i}.shape')
    print(f'The shape of array {i} is {shape}')