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

Pyomo创建约束报'list'对象无is_expression_type属性如何解决

错误原因

这个错误的核心是你在初始化PV_gen参数时传递了普通列表,Pyomo无法将列表元素与集合T的索引正确映射,导致调用model.PV_gen[t]时返回的是列表对象而非预期的数值,Pyomo在构建约束表达式时无法识别列表类型,因此抛出属性错误。

解决方案
  • 方法1:直接使用pandas Series初始化参数,Pyomo会自动匹配Series索引与集合T的元素:
model.PV_gen = Param(model.T, initialize=df['pv_gen'])
  • 方法2:将值转换为索引-值对应的字典后传入,适合集合索引非连续、非整数的场景:
pv_gen_dict = dict(zip(df.index.tolist(), df.pv_gen.tolist()))
model.PV_gen = Param(model.T, initialize=pv_gen_dict)
额外检查项

如果修改初始化逻辑后仍报错,可先检查原始数据格式:执行print(df['pv_gen'].apply(type).unique()),确认该列所有元素都是int/float数值类型,不存在嵌套列表的情况。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 04:06:04