python在循环中创建并使用不同变量名

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

创建变量

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

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)
  • 8
    点赞
  • 32
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
### 回答1: 在 Python ,不建议使用循环来动态创建变量,因为这会使代码变得难以维护和理解。相反,我们可以使用列表、字典或其他数据结构来存储需要的变量。 如果你仍然想要动态创建变量,可以使用 `globals()` 或 `locals()` 函数来操作全局或局部变量。例如: ```python for i in range(5): globals()[f"var_{i}"] = i * 2 ``` 这将动态地创建名为 `var_0`、`var_1`、`var_2`、`var_3` 和 `var_4` 的五个变量,并将它们分别设置为 0、2、4、6 和 8。 但是请注意,这种方法可能会导致变量名与已有变量或函数重复,从而引发错误。因此,建议仍然使用数据结构来存储变量。 ### 回答2: 在Python,我们可以使用循环语句来创建不同的变量。 一种常用的方法是使用循环创建一系列类似的变量,可以使用列表或者字典来存储这些变量。例如,使用循环创建一系列数字变量可以使用列表: ```python numbers = [] # 创建一个空列表来存储数字变量 for i in range(1, 6): name = "number" + str(i) # 创建变量名 value = i * 2 # 创建变量值 globals()[name] = value # 将变量名和变量值添加到全局命名空间 numbers.append(name) # 将变量名添加到列表 print(numbers) # 打印列表变量名 print(number1) # 打印第一个变量的值 ``` 这段代码将创建五个变量`number1`、`number2`、`number3`、`number4`、`number5`,并且分别赋值为2、4、6、8、10。同时,将变量名添加到列表`numbers`。 另一种方式是使用字典来存储这些变量,其键为变量名,值为变量值。可以使用字典的`update()`方法来添加键值对。例如,使用循环创建一系列字符串变量可以使用字典: ```python strings = {} # 创建一个空字典来存储字符串变量 for i in range(1, 6): name = "string" + str(i) # 创建变量名 value = "value" + str(i) # 创建变量值 strings.update({name: value}) # 添加键值对到字典 print(strings) # 打印包含变量名和变量值的字典 print(strings["string3"]) # 打印第三个变量的值 ``` 这段代码将创建五个变量`string1`、`string2`、`string3`、`string4`、`string5`,并且分别赋值为"value1"、"value2"、"value3"、"value4"、"value5"。可以通过字典的键来访问对应的值。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值