You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何通过字符串格式化调用变量?Python循环赋值问题求助

解决Python中通过字符串格式调用变量的问题

嘿,这个问题我之前也踩过坑!直接把字符串当成变量名用肯定行不通,Python可不会自动帮你把字符串解析成对应的变量。这里给你两个实用的解决方案,按需选择:

方法一:用字典存储变量(强烈推荐)

单独定义x0到x100这么多零散变量不仅难维护,循环调用也麻烦。不如把这些值统一存到字典里,用索引作为键,这样循环起来超方便:

# 先把所有x变量的值存入字典,键对应索引i
x_values = {
    0: 3.14,
    1: 2.72,
    2: 1.41,
    # ... 中间省略其他变量的赋值
    100: 7.77
}

# 假设lst是你的目标列表
lst = [这里放你的列表初始元素]

# 循环遍历索引,直接从字典取值计算
for i in range(101):  # 注意x0到x100共101个元素,所以范围是0-100
    lst[i] -= x_values[i]

这个方法的好处是代码清晰,后续要修改某个值或者新增变量,直接操作字典就行,完全符合Python的最佳实践。

方法二:用globals()/locals()函数(应急用,不推荐)

如果你实在不想改现有变量的定义方式,可以通过globals()或locals()函数获取当前作用域的变量字典,然后通过字符串拼接的键名来取值:

# 假设lst是你的目标列表
lst = [这里放你的列表初始元素]

for i in range(101):
    # globals()返回全局变量的字典,用'x{}'.format(i)作为键获取对应变量的值
    lst[i] -= globals()['x{}'.format(i)]

⚠️ 注意:这种方法尽量少用!一来代码可读性差,别人看的时候会困惑;二来如果变量名拼写错误或者变量不存在,会直接报错,维护起来很头疼。


内容的提问来源于stack exchange,提问作者user11914512

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.07 15:57:36