You need to enable JavaScript to run this app. Python中如何将字符串作为变量使用,用循环简化重复的条件判断代码
优惠活动
大模型
产品
解决方案
定价
更多

Python中如何将字符串作为变量使用,用循环简化重复的条件判断代码

实现方案

推荐方案(可维护性更高)

优先选择预定义映射的写法,规避动态读取变量带来的不可控风险:

x = {}
# 提前配对zone变量和对应的test变量
zone_list = [
    (zone1, zone1_test),
    (zone2, zone2_test),
    (zone3, zone3_test)
]
for idx, (zone_flag, test_val) in enumerate(zone_list, start=1):
    if zone_flag == 1:
        x[f'zone{idx}_val'] = test_val - 10

动态读取变量名方案

如果确实需要通过字符串拼接变量名读取值,可以用对应作用域的内置字典实现:

全局作用域下使用globals()

x = {}
for i in range(1,4):
    if globals()[f'zone{i}'] == 1:
        x[f'zone{i}_val'] = globals()[f'zone{i}_test'] - 10

局部作用域下使用locals()

如果变量定义在函数内部,替换为locals()即可:

x = {}
for i in range(1,4):
    if locals()[f'zone{i}'] == 1:
        x[f'zone{i}_val'] = locals()[f'zone{i}_test'] - 10

注意:动态读取变量名的写法可读性、可维护性都比较差,非特殊场景不建议使用。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.12 19:03:03