Gurobi Model变量精确匹配查询问题求助
解决Gurobi变量精确匹配问题
你用in做子串匹配,自然会把包含732913342082_MAN-1的所有变量都捞出来,包括带-10的。要实现精确匹配,有两种实用方案:
- 完全精确匹配:直接用
==判断变量名完全相等,这是最贴合你需求的方案:[var for var in m.getVars() if var.VarName == '732913342082_MAN-1'] - 结构化变量名的片段精确匹配:如果你的变量名是固定格式(比如
前缀_标识-数字),只想匹配标识部分为MAN-1的变量,可以用字符串分割精准定位目标片段:# 假设变量名格式为XXX_732913342082_MAN-1,按下划线分割取最后一段 [var for var in m.getVars() if var.VarName.split('_')[-1] == 'MAN-1'] # 若目标片段在其他位置,调整分割后的索引即可
第一种方法能确保只有变量名完全等于732913342082_MAN-1的变量才会被选中,完美解决你的问题。
内容的提问来源于stack exchange,提问作者DJ-coding
相关产品推荐
相关产品推荐

