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

如何在for循环中根据变量N动态引用st_N命名的列表?

解决动态遍历对应名称列表的问题

你可以通过以下几种方式实现需求,推荐优先使用字典管理的方式:

方法1:使用全局/局部变量字典(不推荐)

如果你的st_*系列列表是全局或局部变量,可以通过globals()或locals()函数获取变量字典,再拼接变量名来获取目标列表:

import numpy as np

N = 4
# 假设已定义st_4列表
for tr in globals()[f'st_{N}']:
    tr.data = np.require(tr.data, dtype=np.float32)

这种方式虽然能实现需求,但直接操作变量字典可读性差,容易引发意外问题,不建议在复杂项目中使用。

方法2:用字典统一管理列表(推荐)

更规范的做法是提前把所有st_*列表存入字典,通过键值对的方式动态获取:

import numpy as np

# 初始化字典,将对应编号的列表存入
st_dict = {
    1: st_1,
    2: st_2,
    3: st_3,
    4: st_4
}

N = 4
# 通过变量N作为键,获取目标列表遍历
for tr in st_dict[N]:
    tr.data = np.require(tr.data, dtype=np.float32)

这种方式结构清晰,代码易维护,符合Python的编码最佳实践。

方法3:类实例属性场景

如果st_*是类的实例属性,可以使用getattr()函数动态获取:

import numpy as np

class MyClass:
    def __init__(self):
        self.st_4 = [...]  # 初始化实例属性列表

obj = MyClass()
N = 4
for tr in getattr(obj, f'st_{N}'):
    tr.data = np.require(tr.data, dtype=np.float32)

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.24 01:28:16