首页
学习
活动
专区
工具
TVP
发布
社区首页 >问答首页 >如何检查Pyomo模型中是否存在某些内容

如何检查Pyomo模型中是否存在某些内容
EN

Stack Overflow用户
提问于 2019-05-09 03:18:29
回答 1查看 383关注 0票数 0

我正在寻找一个pyomo函数,如果pyomo模型中存在一个元素,它将返回True。

例如,如果我创建一个简单的pyomo模型,我希望它的响应如下所示。或者,也许有一种方法可以输出Pyomo模型中所有元素的列表,然后我可以检查某个元素?

import pyomo.environ as pe

model = pe.AbstractModel()
model.t = pe.Set()
model.A = pe.Param(model.t)

# Do functions such as has_element() or list_elements() exist?
model.has_element('A') # Returns True
model.has_element('B') # Returns False

elements = model.list_elements()
print('A' in elements) # Prints True
print('B' in elements) # Prints False

到目前为止,我想到的最好的方法是使用find_component()函数,如果组件存在,则返回组件;如果组件不存在,则返回None

import pyomo.environ as pe

model = pe.AbstractModel()
model.t = pe.Set()
model.A = pe.Param(model.t)

model.find_component('A') # Returns model.A
model.find_component('B') # Returns None

这是最好的方法吗?

EN

回答 1

Stack Overflow用户

发布于 2019-05-09 03:32:28

因为字符串和非空对象在python中通常是真的,而没有一个是假的:

if model.find_component('A'):
    # do something with model A
    print('here')

if model.find_component('B'):
    # do something with model B
    print('there')

请注意,如果您运行上面的场景,您将得到预期的结果,因为"here“将被打印出来,而”here“则不会。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/56047644

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档