Python如何将var1、var2这类按序列命名的变量组装为列表
正确实现方案
核心问题说明
你原代码存在两个问题:
- 拼接变量名时使用了错误的前缀
semplus,和你实际的变量前缀var不符 namestr函数的作用是获取变量对应的名称字符串,和你需要「获取变量值」的需求完全不匹配
实现代码
如果你的var1~varn是全局变量,直接通过globals()按名称取值即可,推荐用列表推导式实现,写法更简洁:
var1 = 1 var2 = 2 var3 = 3 var4 = 4 # 直接生成目标列表 variables = [globals()[f'var{i}'] for i in range(1, 5)]
运行后variables的值就是[1, 2, 3, 4],和你手动写[var1, var2, var3, var4]的效果完全一致。
如果变量定义在局部作用域内,把globals()替换成locals()即可。
优化建议
如果可以调整代码结构,更推荐你一开始就把同系列的值直接存到列表或字典里,避免定义一堆带数字后缀的独立变量,代码可读性和可维护性都会更高。
内容的提问来源于stack exchange,提问作者pd441
相关产品推荐
相关产品推荐

