首页 > 编程笔记 > Python笔记 阅读:2

Python tuple元素详解(附带实例)

元组(tuple)是 Python 中一个重要的序列结构,和列表类似,元组也是由一系列按特定顺序排列的元素组成。

元组和列表(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)
()

元组与字符串类似,下标索引从 0 开始,可以进行截取、组合等,如下图所示。


图 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

相关文章