tuplelist类
tuplelist类
下一个我们想讨论的重要问题是tuplelist
类。这是Python的自定义子类列表
类,其设计目的是使您能够有效地从元组列表构建子列表。更具体地说,您可以使用选择
方法tuplelist
对象检索与特定字段中的一个或多个指定值匹配的所有元组。
让我们举个简单的例子。我们将从创建一个简单的tuplelist
(通过向构造函数传递一个元组列表):
gurobi > l = tuplelist([(1、2),(1,3)(2、3),(2、4)))要选择特定元组项与所需值匹配的子列表,可以将所需值指定为参数
选择
方法。的参数个数选择
等于元素中元素的个数tuplelist
(它们应该都有相同数量的条目)。您可以提供一个列表参数来指示在元组的该位置可接受多个值,或者提供一个‘*’
字符串,表示任何值都是可接受的。在我们的例子中,每个元组包含两个条目,所以我们可以执行以下选择:
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
:
Gurobi > print(l[1]) (1,3) Gurobi > l += [(3,4)] Gurobi > print(l) < Gurobi。tuplelist(5 tuples, 2 values each): ( 1 , 2 ) ( 1 , 3 ) ( 2 , 3 ) ( 2 , 4 ) ( 3 , 4 ) >