【发布时间】:2021-04-23 23:49:19
【问题描述】:
我有一个类似的列表:
list = [var_1, var_2, var_3]
使用 Pulp 库,我试图将它们定义为带有 for 循环的变量:
LpVariable(list[i] for i in range(len(list)))
然后我尝试将它们全部相加并将其分配给模型:
model += LpVariable(list[i] for i in range(len(list)))
在这两种情况下,我都会收到一个错误提示 expected string or bytes-like object
谁能帮帮我?
问候
【问题讨论】:
-
我猜第二行和第三行末尾的右括号 ] 应该是右括号),对吧?你到底想用 list[i] for i in range(len(list)) 来实现什么?不确定这个 LpVariable 是什么,但它似乎需要一个字符串或类似字节的对象作为输入。你提供了一个生成器。
-
最后的 ] 是一个错字。在 Pulp 库中,您必须定义线性规划的变量,并且必须使用 de LpVariable 对象来完成。
-
什么是var_1等?这些是字符串吗? Lpvariable 的第一个参数应该是它的名称(即一个字符串)。如果您想索引一堆变量,请使用列表、dict 或 PuLP 的 LpVariable.dicts。
-
我建议不要调用变量
list或任何其他内置类型名称或 python 关键字。 Python 不会抛出错误,但这是个坏主意。
标签: python linear-programming pulp