元组列表类

元组列表类

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

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

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

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

古罗比>打印(l.select(1,“*”)gurobi>打印(l.select(“*”,3))gurobi>print(l.select(“*”,[2,4])gurobi>print(1,3))gurobi>print(l.select('*','*'))

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

gurobi>print(l.select(1,“*”)gurobi>print([(x,y)表示x,如果x==1,则在l中为y])[(1,2)、(1,3)]
问题是后一个语句考虑了列表中的每个成员,这对于大型列表来说可能效率很低。这个选择方法构建内部数据结构,使这些选择非常有效。

注意元组表是的一个子类列表,因此您可以使用标准列表方法来访问或修改元组表:

古罗比>打印(l[1])(1,3)古罗比>l+=[(3,4)]古罗比>打印(l)