如何获取函数参数列表理解的索引

问题描述 投票:0回答:1

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*>}
python list-comprehension generator gurobi
1个回答
3
投票

我不确定我是否正确理解你的问题,但如果你想知道如何从生成器表达式中检索迭代器,那么那就通过访问

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]
© www.soinside.com 2019 - 2024. All rights reserved.