python在循环中创建并使用不同变量名
2023-03-20 14:57:01 时间
有的时候在循环中需要创建形式类似的变量名,这样可以缩短代码长度,看网上大部分方法是通过字典或列表实现,复杂情况下不太好用。最后的解决办法是通过 exec() 函数实现。
创建变量
for k in range(5):
exec(f'cat_{k} = k*2') # 在Jupyter中不写exec也可以正常运行,但在脚本中必须写exec
cat_2 # 4
exec() 函数可以理解为执行一段写在字符串中的代码语句。
进一步了解其用法可以参考
Python exec 内置语句
Python的exec
Python之浅谈exec()函数
与之有密切联系的是 eval() 函数,可以理解为执行一段写在字符串中的表达式。
二者具体区别可以参考下面文章或者其他网上材料:
python中的exec()函数和eval()函数
深度辨析Python的eval()与exec()的方法
但一般使用 exec() 和 eval() 函数可能会有风险,且代码较抽象,很多时候用列表已经可以满足需求了。
lst = []
for i in range(0, 9):
lst.append(i**2)
lst[2] # 4
调用变量
调用变量的原理是一样的,把代码写进字符串里即可。
这里需要注意的是,如果代码中也有因号,那需要和最外层的字符串引号区分开。例如下面代码中,要调用的变量是字典,如果最外层也是单引号,则会与字典的引号冲突,从而报错。
for tag_i in tag:
exec(f"t = np.hstack((MT_{tag_i}['t'] , ME_{tag_i}['t']))")
exec(f"V = np.hstack((MT_{tag_i}['V'] , ME_{tag_i}['Vm']))")
ax1.plot(t,V,label=tag_i)
相关文章
- Python中的函数与方法 以及Bound Method和Unbound Method
- 一文贯通python文件读取
- Python 中的异步编程:Asyncio
- 7个你现在就该学习Python的理由
- 提高Python运行效率的六个窍门
- Python数据科学:神经网络
- 一篇文章看懂大数据分析就业前景及职能定位
- R和Python中的文本挖掘:8个入门小贴士
- 告诉你为什么Python有点慢,但我却无所谓?
- 专注学习DevOps编程语言Top 5推荐
- Python发送邮件脚本
- Python多进程并行编程实践: mpi4py 的使用
- Python语言在未来的发展前景
- Python vs Ruby: 谁是最好的 web 开发语言?
- Python对Ruby:谁在Web开发领域更胜一筹?
- Python一行代码完成并行任务
- Python开发者2017应该关注的七个类库
- python爬虫入门基本知识
- 在终端中优雅地编写Python
- Python机器学习实战:信用卡欺诈检测