Python tuple元素详解(附带实例)
元组(tuple)是 Python 中一个重要的序列结构,和列表类似,元组也是由一系列按特定顺序排列的元素组成。
元组和列表(list)的不同之处在于:
元组也可以看作是不可变的列表,通常情况下,元组用于保存无须修改的内容。从形式上看,元组的所有元素都放在一对小括号()中,相邻元素之间用逗号“,”分隔,如下所示:
从存储内容来看,元组可以存储整数、实数、字符串、列表、元组等任何类型的数据,并且在同一元组中,元素的类型可以不同,例如:
另外,我们都知道,列表的数据类型是 list,那么元组的数据类型是什么呢?不妨通过 type() 函数来查看一下:

图 1 元组创建图
例如,下面的元组都是合法的:
【实例 1】元组的创建实例。
tuple()的语法格式如下:
【实例 2】使用 tuple() 函数创建元组。

图 2 元组的索引
使用索引访问元组元素的格式为:
使用切片访问元组元素的格式为:
【实例 3】使用两种方式访问元组元素。
另外,还可以通过连接多个元组(使用 + 可以拼接元组)的方式向元组中添加新元素。
【实例 4】修改元组实例。
【实例 5】删除元组操作实例。
元组和列表(list)的不同之处在于:
- 列表的元素是可以更改的,包括修改元素值,删除和插入元素,所以列表是可变序列;
- 元组一旦被创建,它的元素就不可更改了,所以元组是不可变序列。
元组也可以看作是不可变的列表,通常情况下,元组用于保存无须修改的内容。从形式上看,元组的所有元素都放在一对小括号()中,相邻元素之间用逗号“,”分隔,如下所示:
(element 1,element 2,...,element n)其中 element1~elementn 表示元组中的各个元素,个数没有限制,只要是 Python 支持的数据类型就可以。
从存储内容来看,元组可以存储整数、实数、字符串、列表、元组等任何类型的数据,并且在同一元组中,元素的类型可以不同,例如:
("c.biancheng.net",1,[2,'a'],("abc",3.0))在这个元组中,有多种类型的数据,包括整型、字符串、列表、元组。
另外,我们都知道,列表的数据类型是 list,那么元组的数据类型是什么呢?不妨通过 type() 函数来查看一下:
>>> type(("c.biancheng.net",1,[2,'a'],("abc",3.0))) <class'tuple'>可以看到,元组是 tuple 类型,这也是很多教程中用 tuple 指代元组的原因。
Python元组的创建
Python提供了两种创建元组的方法,分别为使用 () 创建和使用 tuple() 函数创建。1)使用()创建元组
使用 () 创建元组很简单,只需要在括号中添加元素,并使用逗号隔开即可,如下图所示。
图 1 元组创建图
例如,下面的元组都是合法的:
>>> tup1=('Google','Runoob',1997,2000) >>> tup2=(1,2,3,4,5) >>> tup3="a","b","c","d" #不加括号也可以需要注意的一点是,当创建的元组中只有一个字符串类型的元素时,该元素后面必须要加一个逗号“,”,否则 Python 解释器会将它视为字符串。
【实例 1】元组的创建实例。
#最后加上逗号 a=("http://c.biancheng.net/cplus/",) print(type(a)) print(a) #最后不加逗号 b=("http://c.bi ancheng.net/socket/") print(type(b)) print(b)运行程序,输出如下:
<class'tuple'> ('http://c.biancheng.net/cplus/',) <class'str'> http://c.biancheng.net/socket/
2) 使用tuple()函数创建元组
除了使用 () 创建元组外,Python 还提供了一个内置的函数 tuple(),用来将其他数据类型转换为元组类型。tuple()的语法格式如下:
tuple(data)data 表示可以转换为元组的数据,包括字符串、元组、range 对象等。
【实例 2】使用 tuple() 函数创建元组。
#将字符串转换成元组 tup1= tuple("hello") print(tup1) #将列表转换成元组 list1=['Python','Java','MATLAB','JavaScript'] tup2= tuple(list1) print(tup2) #将字典转换成元组 dict 1={'a':100,'b':42,'c':9} tup3= tuple(dict 1) print(tup3) #将区间转换成元组 range1=range(1,6) tup4= tuple(range1) print(tup4) #创建空元组 print(tuple())运行程序,输出如下:
('h','e','l','l','o')
('Python','Java','MATLAB','JavaScript')
('a','b','c')
(1,2,3,4,5)
()

图 2 元组的索引
Python访问元组
和列表一样,我们可以使用索引(Index)访问元组中的某个元素(得到的是一个元素的值),也可以使用切片访问元组中的一组元素(得到的是一个新的子元组)。使用索引访问元组元素的格式为:
tuplename[i]tuplename 表示元组名字,i 表示索引值。元组的索引可以是正数,也可以是负数。
使用切片访问元组元素的格式为:
tuplename[start:end:step]start 表示起始索引,end 表示结束索引,step 表示步长。
【实例 3】使用两种方式访问元组元素。
url=tuple("https://c.biancheng.net/") #使用索引访问元组中的某个元素 print(url[3]) #使用正数索引 print(url[-4]) #使用负数索引 #使用切片访问元组中的一组元素 print(url[9:18]) #使用正数切片 print(url[9:18:3]) #指定步长 print(url[-6:-1]) #使用负数切片运行程序,输出如下:
p n ('.', 'b', 'i', 'a', 'n', 'c', 'h', 'e', 'n') ('.', 'a', 'h') ('g', '.', 'n', 'e', 't')
Python修改元组
在 Python 中,元组是不可变序列,元组中的元素不能被修改,所以我们只能创建一个新的元组去替代旧的元组。另外,还可以通过连接多个元组(使用 + 可以拼接元组)的方式向元组中添加新元素。
【实例 4】修改元组实例。
#对元组变量进行重新赋值: tup=(100,0.5,-36,73) print(tup) #对元组进行重新赋值 tup=("首页","https://c.biancheng.net/") print(tup) #连接元组 tup1=(100,0.5,-36,73) tup2=(3+12j,-54.6,99) print(tup1+tup2) print(tup1) print(tup2)运行程序,输出如下:
(100, 0.5, -36, 73) ('首页', 'https://c.biancheng.net/') (100, 0.5, -36, 73, (3+12j), -54.6, 99) (100, 0.5, -36, 73) ((3+12j), -54.6, 99)
Python删除元组
元组中的元素是不允许删除的,但我们可以使用 del 语句来删除整个元组。【实例 5】删除元组操作实例。
tup=('Google','Runoob',1997,2020) print(tup) del tup print("删除后的元组tup:") print(tup)以上实例元组被删除后,输出变量会有异常信息,输出如下所示:
('Google', 'Runoob', 1997, 2020) 删除后的元组tup: Traceback (most recent call last): File "script.py", line 5, in print(tup) NameError: name 'tup' is not defined