Python 为什么在exec命令中全局不工作?

Python 为什么在exec命令中全局不工作?,python,function,for-loop,global,Python,Function,For Loop,Global,这是我的密码。我基本上创建了一个函数,根据表的长度自动生成列表。该函数将pandas表作为输入,您需要指定要将行转换为列表的列(列名称),该函数基本上自动执行列表。代码运行得很好,但是有一个问题。我希望for循环中生成的每个列表(I)都是一个全局列表。因此,我尝试将exec(f'global{I}')放入循环中,试图使所有列表都是全局的 一个解决方案是将整个代码块放在函数之外,它会很好地工作,但是,我确实需要将代码放在函数中。关于如何使用exec(f'global{i}')使每个生成的列表成为全

这是我的密码。我基本上创建了一个函数,根据表的长度自动生成列表。该函数将pandas表作为输入,您需要指定要将行转换为列表的列(列名称),该函数基本上自动执行列表。代码运行得很好,但是有一个问题。我希望for循环中生成的每个列表(I)都是一个全局列表。因此,我尝试将exec(f'global{I}')放入循环中,试图使所有列表都是全局的

一个解决方案是将整个代码块放在函数之外,它会很好地工作,但是,我确实需要将代码放在函数中。关于如何使用exec(f'global{i}')使每个生成的列表成为全局列表,有什么建议吗

谢谢

def auto_generate_lists(x):
namesoflistssss1=[]
names_of_listsss = []
for i in range(0,len(x)):
    names_of_listsss.append(f'ls{i}')

for i,j in zip(names_of_listsss,range(0,len(x))):
    exec(f'global {i}')
    exec(f'{i} = []')
    exec(f"{i}.append(x['column_name'][{j}])")
    exec(f"namesoflistssss1.append('{i}')")
    
      

@鲍曼:什么?不,这与Python的
exec
的工作方式完全不同。@bauman.space但它可以工作。。