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

Python遍历列表为每个元素创建对应对象的实现方法求助

解决方案

问题原因

你之前的循环里,sample只是临时迭代变量,每次赋值只会覆盖这个变量本身,并不会创建对应名称的独立对象,所以无法达到预期效果。

方法一:使用字典存储(推荐)

用字典映射样本名称和对应对象,这是Python中动态管理这类对象的标准方式,清晰且易于维护:

def read_10X(filtered_matrix_h5):
    matrix = sc.read_10x_h5(filtered_matrix_h5)
    matrix.var_names_make_unique()
    return matrix

list_sample = ['sampleA', 'sampleB','sampleC']
sample_objects = {}

for sample in list_sample:
    sample_objects[sample] = read_10X(f'../path/to/{sample}/file.h5')

后续可通过sample_objects['sampleA']、sample_objects['sampleB']访问对应对象。

方法二:直接创建全局变量(不推荐)

如果一定要创建与列表元素同名的全局变量,可使用globals()函数,但这种方式会污染全局命名空间,不利于代码调试和维护,仅适合特殊场景:

def read_10X(filtered_matrix_h5):
    matrix = sc.read_10x_h5(filtered_matrix_h5)
    matrix.var_names_make_unique()
    return matrix

list_sample = ['sampleA', 'sampleB','sampleC']

for sample in list_sample:
    globals()[sample] = read_10X(f'../path/to/{sample}/file.h5')

执行后可直接通过sampleA、sampleB访问对应对象。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.12 09:42:32