python - 为什么全局不在 exec 命令中工作?
问题描述
这是我的代码。我基本上创建了一个函数,它根据熊猫表的长度自动生成列表。该函数将 pandas 表作为输入,您需要指定要将行转换为列表(column_name)的列,该函数基本上会自动执行列表。代码一切正常,但是,有一个问题。我希望 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}')")
解决方案
推荐阅读
- javascript - 全屏显示 Jodit 按钮列表
- yaml-front-matter - 保存文件时,vscode中的前端被删除
- python - 您可以验证每个对象的 json 吗?
- alexa-skill - 如何在 Alexa Skill 中向用户询问一个单词
- html - 如何正确锁定字段的内容
- angular - 抽象方法的角度6实现类型错误:X不是函数
- gradle - Gradle:通过 buildSrc 将插件应用到所有子项目?
- vue.js - 在 Nuxt 中,如何从另一个模块中改变一个模块中的 Vuex 状态?
- flutter - 如何通过 podspec 在颤振插件上链接 .o 目标文件?
- extjs - 停止传播来自子组件的自定义事件