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

Python中如何通过循环给变量拼接动态值以简化重复代码?

动态生成AgglomerativeClustering实例的可行方案

不推荐直接动态生成变量名

直接用ac+i的方式生成全局/局部变量虽然能实现,但会污染命名空间,后续维护、调试都很麻烦,不建议这么做。更合理的方式是用容器(字典或列表)来集中管理这些实例。

推荐方案1:用字典存储(保留ac2-ac6的命名标识)

字典可以直接映射你想要的变量名到对应的实例,直观且易维护:

from sklearn.cluster import AgglomerativeClustering

# 创建空字典存储实例
ac_dict = {}
# 循环生成ac2到ac6
for i in range(2, 7):
    # 可根据需求调整聚类参数,这里以n_clusters=i为例
    ac_dict[f"ac{i}"] = AgglomerativeClustering(n_clusters=i)

# 调用示例:获取ac2实例
ac2_instance = ac_dict["ac2"]

推荐方案2:用列表存储(按顺序管理)

如果不需要明确的ac2这类命名,只需要按顺序保存实例,列表是更轻量的选择:

from sklearn.cluster import AgglomerativeClustering

ac_list = []
for i in range(2, 7):
    ac_list.append(AgglomerativeClustering(n_clusters=i))

# 调用示例:获取原ac2实例(对应列表索引0)
ac2_instance = ac_list[0]
# 获取原ac6实例(对应列表索引4)
ac6_instance = ac_list[4]

非要动态生成变量名的实现(不推荐)

如果一定要生成ac2到ac6这类独立变量,可以通过修改全局命名空间实现,但强烈不建议在生产代码中使用:

from sklearn.cluster import AgglomerativeClustering

for i in range(2, 7):
    globals()[f"ac{i}"] = AgglomerativeClustering(n_clusters=i)

# 此时可直接使用ac2、ac3...ac6变量

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 10:13:30