tuplelist类

tuplelist类

我们要讨论的下一个重要项目是tuplelist类。这是Python的一个自定义子类列表类,其设计目的是允许您有效地从元组列表构建子列表。更具体地说,你可以用the选择方法tuplelist对象检索与特定字段中的一个或多个指定值匹配的所有元组。

让我们举一个简单的例子。我们将从创建一个简单的tuplelist(通过向构造函数传递一个元组列表):

gurobi > l = tuplelist([(1、2),(1,3)(2、3),(2、4)))
要选择特定元组项与所需值匹配的子列表,可以将所需值指定为选择方法。参数的数量选择等于元素中元素的个数tuplelist(它们都应该有相同数量的条目)。您可以提供list参数来指示元组中该位置可以接受多个值,或者‘*’字符串,表示任何值都是可接受的。

我们示例中的每个元组都包含两个条目,所以我们可以执行以下选择:

gurobi >打印(l。选择(1, '*'))  gurobi> print(l.select('*', 3))  gurobi> print(l.select('*', [2, 4]))  gurobi> print(l.select(1, 3))  gurobi> print(l.select('*', '*')) 

您可能已经注意到,使用列表理解也可以得到类似的结果。例如:

gurobi >打印(l。选择(1, '*'))  gurobi> print([(x,y) for x,y in l if x == 1]) [(1, 2), (1, 3)]
问题是后一个语句考虑列表中的每个成员,对于大型列表来说,这可能非常低效。的选择方法构建内部数据结构,使这些选择非常有效。

请注意,tuplelist的子类是列表,所以你可以使用标准列表方法来访问或修改tuplelist

[(3,4)]: = (1) < (1);tuplelist(5 tuples, 2 values each): ( 1 , 2 ) ( 1 , 3 ) ( 2 , 3 ) ( 2 , 4 ) ( 3 , 4 ) >