gurobipy.tuplelist#

class tuplelist#

Gurobi 元组列表。这是 Python list 类的一个子类,旨在高效支持在构建优化模型时非常常见的使用模式。特别是,如果 tuplelist 填充了一个元组列表,该类上的 select 函数可以高效地选择其值在指定元组字段中匹配指定值的元组。举个例子,语句 l.select(1, '*', 5) 将选择所有第一个字段等于‘1’且第三个字段等于‘5’的成员元组。'*' 字符用作通配符,表示该字段可以接受任何值。

你通常以构建标准Python列表的方式构建tuplelist对象。例如,你可以使用+=操作符将新项目列表附加到现有的tuplelist,或者使用+操作符连接一对tuplelist对象。你也可以调用appendextendinsertpopremove函数。

要访问tuplelist的成员,你也可以使用标准的列表函数。例如,l[0]返回tuplelist的第一个成员,而l[0:10]返回包含前十个成员的tuplelist。你也可以使用len(l)来查询列表的长度。

请注意,tuplelist 对象构建并维护一组内部数据结构,以支持高效的 select 操作。如果您希望回收与这些数据结构相关的存储空间,可以调用 clean 函数。

一个tuplelist被设计用来存储包含标量值的元组 (int, float, string, …)。它可能会在使用其他Python对象时产生不可预测的 结果,例如元组的元组。因此,你 可以在tuplelist中存储(1, 2.0, 'abc'),但你不应该 存储((1, 2.0), 'abc')

tuplelist(list)#

元组列表构造函数。

Parameters:

list – 成员元组的初始列表。

Returns:

一个元组列表对象。

Example:
l = gp.tuplelist([(1,2), (1,3), (2,4)])
l = gp.tuplelist([('A', 'B', 'C'), ('A', 'C', 'D')])
select(pattern)#

返回一个包含所有匹配指定模式的成员元组的tuplelist。该模式要求为成员元组中的每个字段提供一个参数。标量参数必须与相应字段完全匹配。如果列表参数中的任何成员与相应字段匹配,则列表参数匹配。'*'参数匹配相应字段中的任何值。

Parameters:

pattern – 用于匹配成员元组的模式。

Example:
l.select(1, 3, '*', 6)
l.select([1, 2], 3, '*', 6)
l.select('A', '*', 'C')
clean()#

丢弃与tuplelist对象关联的内部数据结构。 请注意,调用此例程不会影响tuplelist的内容。它只会影响内存使用和后续调用select的性能。

Example:
l.clean()
__contains__(val)#

为Python的in操作符提供高效支持。

Example:
if (1,2) in l:
  print("Tuple (1,2) is in tuplelist l")