查看单个帖子
nh_wzg
 
nh_wzg 的头像
核心会员
 
资 料:
注册日期: Jul 2000
帖子: 3,740 声望值: 3
精华: 5,解答: 10
#2 旧 2021-03-12, 15:55:28 默认
nh_wzg 当前离线  

小白,猜着碰巧通过了,仍然有不明白的地方。

1、原来没有在循环语句中使用globals导致无法正常调用的dataframe,在做了全局申明后,是否一直都是全局了?

2、发现在后面其他几个部分的loop + exec语句中,同样类似语句,没有加globals语句,同样已经可以正常运行了。

3、按网络文章提示,测试调试语句通过,但没有查到相应在官方文档中,准确的表达方法》》exec("f4%s=f4%s[[0,1,2,3,4,5,15,'a','b','c']]"%(i,i)),
尤其是在其他部分的loop + exec语句中,最多有3个占位符的情况,也正常通过了。

4、在查loop + exec语句过程中,stackoverflow的大量作者都反对随便使用exec(),如果是在我上面样例的条件下面,不用exec(),有没有更好的编写方式?

代码:
## 下面的无法循环运行 // 增加globals语句,修改占位符%d为%s,语句中有n个占位符,在括号内就要有n个循环变量i列出。
for i in range(18):
    globals
    exec("f4%s=f4%s[[0,1,2,3,4,5,15,'a','b','c']]"%(i,i))

5、exec("for key in dic01_%s:\
ff.loc[ff[9].str.contains(key),a0]=dic01_%s[key]"%(i,i))

在jupyter notebook环境下面,可以通过运行。

》这个遇到个没有理解的地方:有几个在dic01_07字典里面的key-value对,无法正常运行,然后把他单独写成语句,在循环外来执行,又是能够正常执行的。
现在也就只能先在循环外以固定写好的语句来完成执行。

此帖于 2021-04-27 08:19:52 被 nh_wzg 编辑. .


平和精确简约应成为精品成员的三大基本要求!!!
nh_wzg
回复时引用此帖