当前位置: 首页 > 科技观察

想要熟练掌握Python元组?你需要了解这10件应知事项

时间:2023-03-17 20:41:33 科技观察

想掌握Python元组?你需要知道的这10件事你应该知道作为一种通用的编程语言,Python已经成为各个学术和工业领域最流行的语言之一。此前,在IEEESpectrum发布的第五届年度编程语言交互排行榜中,Python不仅高居榜首,还在综合指数、用户增长率、就业优势和开源语言单项上占据榜首。Python拥有强大的数据结构集合,例如int、string、list、dict和tuple——固定大小且不可变的数据序列。在今天的文章中,小新将带领大家回顾一下最常见的正确使用Python元组的方法。1.使用索引访问元组中的单个元素创建元组后,有时您需要访问它的某些值。一种方法是使用基于0的索引访问它。请参见下面的示例。值得注意的是,在Python中,负数用于以相反的顺序索引序列。例如,-1是序列中最后一个元素的索引。当然,如果您尝试使用范围之外的索引访问元素,您将看到IndexError(索引错误)。>>>tuple_index=(100,'text',False,{1:'five',2:True})>>>tuple_index[0]100>>>tuple_index[-1]{1:'five',2:True}>>>tuple_index[2]False>>>tuple_index[6]Traceback(mostrecentcallast):File"",line1,inIndexError:tupleindexoutofrange2。虽然元组不能作为可变元素对象作为一个整体发生变化,但是如果单个元素本身是可变的,那么它们是可以改变的。请参见下面的示例。具体就是修改元组(tuple)中的list和dict。>>>mutable_elements=(1,[1,2],{0:'zero',1:'one'})>>>mutable_elements[1].append(3)>>>mutable_elements(1,[1,2,3],{0:'零',1:'一})>>>mutable_elements[2][2]='two'>>>mutable_elements(1,[1,2,3],{0:'zero',1:'one',2:'two'})3.Advancedtupleunpacking有时解包一个元组,并没有必要访问所有单独的元素。对于那些不重要的元素,可以使用下划线(_)来表示。另一种高级元组拆包技术是使用星号(*)来表示元组中元素的顺序。_和*用法也可以结合使用。>>>advanced_unpacking0=(1,2,3)>>>a,_,c=advanced_unpacking0>>>a1>>>c3>>>advanced_unpacking1=(1,2,3,4,5,11,12,13,14,15)>>>a,*middle,c=advanced_unpacking1>>>middle[2,3,4,5,11,12,13,14]>>>_,*tail=advanced_unpacking1>>>tail[2,3,4,5,11,12,13,14,15]>>>head,*_=advanced_unpacking1>>>head14。使用值序列创建元组创建元组时,使用逗号分隔值序列。括号是可选的,尤其是当声明一个表达式并不简单时,使用它们可以提高可读性。>>>tuple0=1,4,5>>>print(tuple0)(1,4,5)>>>tuple1=(1,2,'three')>>>print(tuple1)(1,2,'三')>>>tuple2=(4,7,('a','b'),lambdax:x+1)>>>print(tuple2)(4,7,('a','b'),at0x106e98830>)>>>tuple3=()>>>print(tuple3)()>>>tuple4='one',>>>print(tuple4)('one',)特别的情况是:用一对括号创建一个空的元组(tuple);在唯一值之后使用逗号来创建单值元组(tuple)。5.计算元组中元素的个数由于元组(tuple)是一个序列,所以可以使用len()函数来计算所有元素的总数。另一个函数count()也很方便,可以用来统计调用中指定值的个数。请参见下面的示例。>>>tuple_len=(1,3,'一','三','五')>>>len(tuple_len)5>>>tuple_count=(1,1,2,2,2,2,3,3,3)>>>tuple_count.count(2)4>>>tuple_count.count(3)36。使用tuple()函数创建元组您可以使用内置的tuple()方法创建元组,它将可迭代(iteration)作为唯一参数。生成的元组将是可迭代项的可迭代序列。在下面的示例中,分别从str、dict和list生成元组。>>>tupletuple5=tuple(['a','b'])>>>print(tuple5)('a','b')>>>tupletuple6=tuple('tuple')>>>print(tuple6)('t','u','p','l','e')>>>tupletuple7=tuple({'a':1,True:4})>>>print(tuple7)('a',True)>>>tupletuple8=tuple((1,'two',[1,2]))>>>print(tuple8)(1,'two',[1,2])7.使用splitPacking方法访问元组的单个元素在使用元组时您可能经常听到的另一个概念是元组(tuple)拆包,它允许访问单个元素。请参见下面的示例。>>>tuple_unpacking=(1,'two',[3,3,3],{'four':4})>>>a,b,c,d=tuple_unpacking>>>a1>>>b'two'>>>c[3,3,3]>>>d{'four':4}8.for循环中的元组for循环中经常需要使用元组。由于元组是可迭代的,因此可以直接在for循环中使用它们,这将迭代元组的各个元素。或者,如果要应用计数器,可以使用元组的内置enumerate()方法。请参见下面的示例。>>>tuple_for_loop=('one','two','three')>>>foriintuple_for_loop:...print(i)...onetwothree>>>for(i,item)inenumerate(tuple_for_loop,start=1):...print(str(i)+':is'+item)...1:isone2:istwo3:isthree9。元组的不变性正如本文开头提到的,元组是一个不可变的值序列。因此,不能更改单个元素的值。>>>immut_tuple=(3,5,7)>>>immut_tuple[0]=1Traceback(mostrecentcalllast):File"",line1,inTypeError:'tuple'objectdoesnotsupportitemassignment10.可以使用元组连接加号(+)运算符连接多个元组以创建新的元组。或者,如果要通过多次连接同一个元组来创建新元组,请使用乘法(*)运算符。>>>concat_tuple0=(1,2)+('三',4)+('五',6)>>>concat_tuple0(1,2,'三',4,'五',6)>>>concat_tuple1=('奇数','事件')*4>>>concat_tuple1('奇数','事件','奇数','事件','奇数','事件','奇数','事件')元组是我在Python编程中最喜欢的数据结构之一,因为它们易于构造和访问单个元素。当然,请记住元组是不可变的并且没有过多的方法,这可能会限制其更广泛的使用,在这种情况下可以考虑使用列表或字典。