首页 / 知识
熟练掌握Python元组
2023-11-12 13:38:00
作为一种通用编程语言,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(mostrecentcalllast):
File"",line1,in
IndexError:tupleindexoutofrange
2.可变元素
虽然一个元组不能作为一个对象整体改变,但如果单个元素本身是可变的,就可以对其进行更改。参见下方示例。具体来说,修改了tuple(元组)中的list和dict.
>>>mutable_elements=(1,[1,2],{0:'zero',1:'one'})>>>mutable_elements[1].append(3)
>>>mutable_elements
(1,[1,2,3],{0:'zero',1:'one'})>>>mutable_elements[2][2]='two'
>>>mutable_elements
(1,[1,2,3],{0:'zero',1:'one',2:'two'})
3.高级元组拆包
有时拆包一个元组,并不需要访问所有的单个元素。对于那些不重要的元素,可以用下划线(_)表示。另一种高级的tuple(元组)拆包技术是,使用星号(*)表示tuple(元组)中的元素序列。_和*用法也可以组合使用。
>>>advanced_unpacking0=(1,2,3)
>>>a,_,c=advanced_unpacking0
>>>a
1
>>>c
3>>>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
>>>head
1
4.使用值序列创建元组
创建元组时,需使用逗号分隔值序列。括号是可选的,尤其在声明表达式不直接的情况下,使用括号可以提高可读性。
>>>tuple0=1,4,5
>>>print(tuple0)
(1,4,5)>>>tuple1=(1,2,'three')
>>>print(tuple1)
(1,2,'three')>>>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,'one','three','five')
>>>len(tuple_len)
5>>>tuple_count=(1,1,2,2,2,2,3,3,3)
>>>tuple_count.count(2)
4
>>>tuple_count.count(3)
3
6.使用tuple()函数创建元组
可使用内置tuple()方法创建元组,该方法将iterable(迭代)作为唯一参数。生成的tuple(元组)将是iterable的迭代项序列。如下示例中,元组分别从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.使用拆包方法访问元组的单个元素
使用元组可能经常听到的另一个概念是tuple(元组)拆包,它允许访问单个元素。参见下方示例。
>>>tuple_unpacking=(1,'two',[3,3,3],{'four':4})
>>>a,b,c,d=tuple_unpacking>>>a
1
>>>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)
...
one
two
three>>>for(i,item)inenumerate(tuple_for_loop,start=1):
...print(str(i)+':is'+item)
...
1:isone
2:istwo
3:isthree
9.元组的不可变性
正如本文开头提到的,元组是一个不可变值序列。因此,不能改变单个元素的值。
>>>immut_tuple=(3,5,7)
>>>immut_tuple[0]=1
Traceback(mostrecentcalllast):
File"",line1,in
TypeError:'tuple'objectdoesnotsupportitemassignment
10.元组连接
可使用加号(+)运算符连接多个元组,来创建一个新元组。或者,如果想通过多次连接同一元组来创建一个新的元组,可使用乘法(*)运算符。
>>>concat_tuple0=(1,2)+('three',4)+('five',6)
>>>concat_tuple0
(1,2,'three',4,'five',6)>>>concat_tuple1=('odd','event')*4
>>>concat_tuple1
('odd','event','odd','event','odd','event','odd','event')
元组是笔者在Python编程中最喜欢使用的数据结构之一,因其便于构造和访问单个元素。当然,请记住元组是不可变的,并且没有过多的方法,这可能限制其更广泛的使用,这种情况下,可以考虑使用list或dict。
以上内容为大家介绍了熟练掌握Python元组,希望对大家有所帮助,如果想要了解更多Python相关知识,请关注我们http://www.mobiletrain.org/
最新内容
相关内容
Python网络编程调用接收数据的三种
Python网络编程调用接收数据的三种方法,数据,代码,基础,通用,通讯,服务,网络,培训,方法,报文,最近在使用python进行网络编程开发一个通用的tcPython变量数据类型的转换
Python变量数据类型的转换,代码,数据,培训,信息,字符串,类型,变量,整数,浮点,函数,虽然Python是弱类型编程语言,不需要像Java或C语言那样还要Python元类之通过元类实现数据库OR
Python元类之通过元类实现数据库ORM框架,数据,名称,信息,代码,主体,当中,字段,分析,一致,投入,ORM框架是什么如果是没有做过后端的小伙伴上来python装饰器的概念
python装饰器的概念,代码,概念,函数,工作,培训,变动,一致,数据,时间,对象,装饰器一直是我们学习python难以理解并且纠结的问题,想要弄明白装饰python 列表元素的删除
python 列表元素的删除,代码,数据,位置,连续,异常,首次,培训,元素,列表,空隙,使用del命令删除列表中的指定位置上的元素。>>>a_list=[3,5,7,9python 列表元素访问与计数
python 列表元素访问与计数,异常,首次,培训,列表,元素,下标,对象,方法,次数,以上,使用下标直接访问列表元素,如果指定下标不存在,则抛出异常。>python 用于序列操作的常用内置函
python 用于序列操作的常用内置函数,较大,培训,列表,函数,元素,对象,参数,操作,字符串,序列,len(列表):返回列表中的元素个数,同样适用于元组、python如何读取列表中元素的位置?
python如何读取列表中元素的位置?,位置,数据,异常,培训,字符串,元素,索引,方法,示例,结果,python读取列表中元素位置的方法:1、使用index()方python如何导入txt数据库?
python如何导入txt数据库?,数据,时间,代码,培训,数据库,函数,读数,数据表,以上,方法,python将TXT数据导入数据库的方法代码如下:#!/usr/bin/pyPython怎么取出列表中的相邻元素?
Python怎么取出列表中的相邻元素?,代码,异常,培训,元素,指针,序列,对象,表示,语句,函数,1、python的迭代器。iter()能把一个序列生成为一个和python怎样获取json数据类型?
python怎样获取json数据类型?,培训,数据类型,类型,正则,火狐,以上,方法,更多,内容,列表,python中获取json不同数据类型的方法:1、获取"key":vpython数据怎么添加列?
python数据怎么添加列?,数据,位置,培训,方法,属性,结果,示例,函数,前面,以上,python在DataFrame数据中添加列的方法:1、使用concat方法在数据