元组结构


元组的介绍— “世间因少年挺身向前,而更加瑰丽”

元组是 Python 中用于存储不可变数据的数据结构,它的特点是有序的、不可修改的

元组和列表类似,都是用于存储数据的,但是元组一旦被创建之后,其内部的结构就被锁定,任何添加、删除、修改内部的元素都会被程序阻止,产生报错信息。

元组是由括号构成的,和列表一样,可以存储不同类型的数据,来看几个创建元组的例子:

# 元组和由括号直接创建
course = ("牧旗教程", "面向新手小白", "详细易懂")
 
# 可以省略外侧括号创建
my_tuple = 10, 20, 30
 
# 使用tuple内置函数将其他类型数据转换为元组
my_tuple = tuple(["apple", "orange", banana])
 
# 元组可以由多种数据类型构成
my_tuple = (300, "Cat", True, [1, 2, 3], None)

需要特殊注意的是:元组里如果只有一个元素,也要保留一个逗号用来标记,因为在 Python 中括号有另外的含义,因此会产生冲突,来看个例子方便理解:

# 如果不加逗号创建一个单元素的元组
x = (6)
print(x)
print(type(x))

运行代码,结果如下,此时的 x 变量是 int 数字类型:

6
< class 'int' >

使用上面的这种方式创建的变量类型是数字类型,因为括号被计算机认为是数学意义上的括号,所以要用下面的写法:

# 加逗号来创建一个单元素的元组
x = (6,)
print(x)
print(type(x))

结果如下,可以看出,此时的 x 变量变成了 tuple 元组类型:

(6,)
< class 'tuple' >

通过这种方式,我们就成功创建了一个单元素的元组。

由于元组的不可修改性质,所以数据更为安全,在创建一些固定的数据时要尽量用元组来替代列表,应用比较广泛的地方有坐标、日期、数据库记录、Http请求等。


基本操作

在 Python 中,关于元组的操作模式主要分为以下几类:

操作方式 描述
查询元组元素 使用索引或者切片的方式查询元组元素,直接输出结果或者赋值给新的变量。
修改元组元素 元组不能修改元素,但是可以替换整个元组
元组新增元素 元组不能新增元素,但是可以替换整个元组
元组删减元素 元组不能删减元素,但是可以整体删除元组变量。

元组的操作

在 Python 中,可以使用多种运算符对元组进行操作,主要用于创建新的元组或者判断大小:

方式 符号 描述
连接元组 + 使用加法符号将多个元组组合起来生成一个新的元组。
复制元组 * 使用乘法符号复制元组并组合到一起,生成一个新的元组。
元组比较大小 比较符号 使用数学中的比较大小符号可以用来判断元组之间的大小关系。

元组的其他相关函数

元组的相关函数和列表的相关函数基本一致,详情可以在列表教程中深入学习,在此不再详细展开,另外要注意的是,由于元组是无法进行修改的,所以 元组中没有 sort 排序函数。

名称 写法 描述
in 元素 in tuple 判断元素是否属于元组。
len len(tuple) 计算元组内的元素数量。
count tuple.count(元素) 计算某个元素在元组中出现的次数。
index tuple.index(元素) 计算某个元素在元组中出现的位置索引。

元组内部数据结构可修改

因为元组内部的元素是不可以整体修改的,但是如果元组里的某个元素的内部是可以修改的,那么可以在外部修改这个可变元素的内部

上面这段话听起来有点绕口,我来举一个例子:如果元组里面的一个元素是列表,那么虽然这个列表是在元组里面的,但是它一样可以被修改。

来看一个例子方便理解,通过代码来修改一个元组存储的列表中的元素:

# 定义一个元组
mytuple = ("牧旗教程", "通俗易懂", ["Python", "Mysql", "Java"])
 
# 修改元组的第三个列表元素
mytuple[2][2] = "Html"
 
# 输出结果
print(mytuple)

运行上面的代码,结果如下:

('牧旗教程', '通俗易懂', ['Python', 'Mysql', 'Html'])
无法显示

可以看到,元组中第三个元素是列表,列表中的第三个元素 Java 被修改成了 Html,虽然元组的性质是不可修改,但是我们通过索引却修改了元组内的一个列表的元素,这是因为我们的操作指针选择的是 列表,而不是 元组

关注公众号【牧旗教程】,回复“更多例题”,获取更多题型进行训练~

您的打赏将帮助维护网站服务器的正常运营,并为作者的后续更新提供更多的动力。

无法显示 无法显示