根据序列动态生成变量名和赋值
在编程过程中有时会有动态生成一系列变量的需求,比如在输出excel表格或者工作簿时需要按照一定的顺序进行命名,当变量数量少时可以挨个赋值,但数量多时挨个赋值比较麻烦且冗余,可以利用python的序列结构和内置函数 locals() 简化变量声明和赋值过程。
**locals()**函数会以字典类型返回当前位置的全部局部变量,无参数,结合例子感受用法即可。
① 变量命名或赋值有规律:
如:A1=1,A2=2,A3=3,……,A100=100
names = locals()
for i in range(1,101):
names["A"+str(i)] = i
② 部分有顺序:
如:
sheet1 = 张三的成绩单
sheet2 = 李四的成绩单
sheet3 = 王五的成绩单
sheet4 = 赵六的成绩单
sheet5 = 孙七的成绩单
names = locals()
student_names=["张三","李四","王五","赵六","孙七"]#借助列表存储
for i in range(len(student_names)):
names["sheet"+str(i+1)] = student_names[i]+"的成绩单"
当变量和赋值都没规律时,只能挨个声明,不过用(p1,p2,p3,p4)=(v1,v2,v3,v4)的方式进行赋值,可以显得优雅一点。