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

如何将优化模型输出的X、I、S变量值分别存入不同列表?

分拆变量结果到不同列表的实现方法

你可以通过变量名前缀判断的方式,把X、I、S三类变量的结果分别存入对应列表,有两种实现方式:

方式一:从已有的solutions列表分拆

先初始化三个空列表,再遍历solutions,按变量名开头的字符分类:

# 初始化三个空列表,分别存储产量、库存、销量的结果
x_results = []
i_results = []
s_results = []

# 遍历solutions列表做分类
for var_info in solutions:
    var_name, value = var_info
    # 根据变量名前缀判断归属
    if var_name.startswith('x['):
        x_results.append(var_info)
    elif var_name.startswith('i['):
        i_results.append(var_info)
    elif var_name.startswith('s['):
        s_results.append(var_info)

方式二:直接遍历模型变量分类(跳过solutions中间列表)

如果不需要保留solutions列表,可以直接在遍历模型变量时完成分类,节省内存:

x_results = []
i_results = []
s_results = []

for v in m.getVars():
    var_name = v.varName
    value = v.x
    print("%s %g" % (var_name, value))  # 保留原打印逻辑
    # 分类存入对应列表
    if var_name.startswith('x['):
        x_results.append([var_name, value])
    elif var_name.startswith('i['):
        i_results.append([var_name, value])
    elif var_name.startswith('s['):
        s_results.append([var_name, value])

注意事项

如果变量名存在大小写差异(比如X[0]而非x[0]),可以把判断条件改成var_name.lower().startswith('x['),兼容大小写情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.18 11:20:30