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

如何用Python根据分类器列表创建对应变量名的目录?

解决方案

首先要明确:直接遍历你当前的classifiers列表,没法直接获取到DT/LR/SVC这些变量名——因为列表里存的是分类器的实例对象,对象本身不知道自己被哪个变量引用。所以最稳妥的方式是把分类器名称和实例绑定在一起存储,再进行循环创建目录。

步骤1:调整分类器列表的存储形式

把原来的列表改成元组列表,每个元组包含目录名称和对应的分类器实例:

import sklearn.tree
import sklearn.linear_model
import sklearn.svm
import os

DT = sklearn.tree.DecisionTreeClassifier()
LR = sklearn.linear_model.LogisticRegression()
SVC = sklearn.svm.SVC()

# 改成(名称, 实例)的元组列表
classifiers = [("DT", DT), ("LR", LR), ("SVC", SVC)]

步骤2:循环创建目录

使用os.makedirs()函数,设置exist_ok=True可以避免目录已存在时抛出错误:

for clf_name, clf in classifiers:
    # 创建目录,exist_ok=True表示目录已存在时不报错
    os.makedirs(clf_name, exist_ok=True)

补充:如果不想修改原列表的替代方案(不推荐)

如果你坚持不想改原列表,可以通过全局变量字典globals()反向查找变量名,但这种方法有风险(比如多个变量指向同一个实例时会出错),示例代码如下:

for clf in classifiers:
    # 遍历全局变量,找到对应实例的变量名
    clf_name = next(key for key, value in globals().items() if value is clf)
    os.makedirs(clf_name, exist_ok=True)

这种方式不如显式绑定名称可靠,建议优先用第一种方法。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.29 05:47:16