python - For 循环迭代 - Pyomo 表达式中的语法错误

标签 python for-loop syntax-error pyomo

我正在尝试在 pyomo 表达式中执行 for 循环

这是我的初始化:

N = range(len(df))
model.N             = Param(N, mutable=False)
model.r             = Var(initialize=1.0 , within=NonNegativeReals)
model.alpha         = Var(initialize=1.0 , within=NonNegativeReals)
model.a             = Var(initialize=1.0 , within=NonNegativeReals)
model.b             = Var(initialize=1.0 , within=NonNegativeReals)
model.rCon          = Constraint(expr= model.r >= 0.000001)
model.alphaCon      = Constraint(expr= model.alpha >= 0.000001)
model.aCon          = Constraint(expr= model.a >= 0.000001)
model.bCon          = Constraint(expr= model.b >= 0.000001)

当我尝试定义这样的表达式时:

model.v1 = Expression(expr= model.r + df['Xi'][0])

它编译得很好,但是当我尝试像这样进行 For 循环迭代时:

model.v2 = Expression(expr= model.r + df['Xi'][i] for i in N)

我收到这样的错误:

pyomo

非常感谢您的帮助

最佳答案

看起来您正在尝试通过参数 expr 将生成器传递给表达式构造函数。在这种情况下,您需要额外的括号,如下所示:

model.v2 = 表达式(expr=(model.r + df['Xi'][i] for i in N))

关于python - For 循环迭代 - Pyomo 表达式中的语法错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57272410/

相关文章:

r - Slurm群集中的R代码无法正确读取

python - 在 python 中打开 .scd 文件?

Python/Pandas-在趋势转变时应用标签(识别数据集中的局部最大值和最小值)

php - 如何在 for each 循环中获取和存储多个 $_POST 变量?

python - 通过 linux ping 并在 python 中获取输出

java - 将二维数组值更改为零

python - Python : elif statement showing “syntaxError: Invalid Syntax” [duplicate]

python - 误导性的 Python 错误消息

python - 在 Python 中从许多包含所需字符串的文件中找到一个

python - 如何使用python向eventhub发送多条消息