Gurobipy 显然可以读取函数括号内制定的列表推导式的索引。这是如何运作的?这个公式不应该将生成器对象传递给函数吗?你如何从中读取索引?
md = gp.Model()
md.addConstrs(True for i in [1,2,5,3])
输出包含列表理解公式中使用的索引:
{1: <gurobi.Constr *Awaiting Model Update*>,
2: <gurobi.Constr *Awaiting Model Update*>,
5: <gurobi.Constr *Awaiting Model Update*>,
3: <gurobi.Constr *Awaiting Model Update*>}
我不确定我是否正确理解你的问题,但如果你想知道如何从生成器表达式中检索迭代器,那么那就通过访问
generator.gi_frame.f_locals
>>> a = (True for i in [1,2,5,3])
>>> type(a)
<class 'generator'>
>>> a.gi_frame.f_locals
{'.0': <tuple_iterator object at 0x1003cfa60>}
>>> a.gi_frame.f_locals['.0']
<tuple_iterator object at 0x1003cfa60>
>>> list(a.gi_frame.f_locals['.0'])
[1, 2, 5, 3]