python循环创建不用变量名的变量

有的时候在循环中需要创建形式类似的变量名,这样可以缩短代码长度,看网上大部分方法是通过字典或列表实现,复杂情况下不太好用。最后的解决办法是通过 exec() 函数实现。

创建变量
参考链接 关于python:如何在循环中创建不同的变量名?

for k in range(5):
    exec(f'cat_{k} = k*2')  # 在Jupyter中不写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)

————————————————
版权声明:本文为CSDN博主「gsgbgxp」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/gsgbgxp/article/details/117769685

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容