Python中的元组(Tuple)

Python025

Python中的元组(Tuple),第1张

在Python中,元组(Tuple)与列表(List)类似,也是一个有序的序列,但元组是一个不可变对象,其一旦初始化后便无法进行修改。

一般在创建元组时,分为创建空元组和非空元组,其创建方式如下:

从上面可以看到,我们只需要把元组的所有元素放在 小括号 () 里面,每个元素之间通过 逗号 , 间隔起来即可,当然和列表一样,元组中同样允许存放不同数据类型的元素。

元组中使用的 () 是常见的数学运算符,如果参考列表的创建,如下:

从上面可以看到,我们创建出来的压根就不是元组类型。那么我们想创建一个只包含一个元素的元组时,需要怎么创建呢?

很简单,只需要在元素后加上一个 逗号 , ,这样创建出来就是一个元组。

当我们需要访问元组中的元素,可以类似列表一样通过索引取值或切片取值。

如果访问的索引不存在,那么会报错: IndexError: tuple index out of range

在元组中,可以像列表一样使用切片,语法为: 元组[start:end:step] ,通过切片可以获取到元组中指定范围的元素,返回结果是一个新元组。在这里,需要注意切片的规则是左闭右开,也就是说包含头部 start,但不包含尾部 end ,而 step 则表示切片的步长,需要每间隔 step 个元素取一次。

在上面我们提到了元组是不可变的,这就意味着我们创建一个元组之后,不能再去改变其值了,比如下面这样就会出现报错:

假设元组中存在元素是一个可变对象,如果我们不改变元组,但改变了可变对象的值,又会得到怎么的结果呢?请看下面实例:

从上面可以看到,元组中的第 2 个元素似乎发生了变化,这岂不是和上面说的元组不可变自相矛盾了吗?

其实,我们说的元组不可变,指的是元组中各元素的指向永远保持不变。在上面操作中,元组中第 2 个元素指向的一直是 列表nums ,我们改变的其实不是元组的元素,而只是改变了 列表nums 中的元素。

元组是不可变的,因此我们就不能删除元组中的元素,但是,我们可以通过 del 语句删除整个元组。

通过关键字 in ,可检查当前元组中是否包含指定元素,返回结果为布尔值 True 或 False。

通过关键字 in ,还可以用于遍历当前元组。

元组数据类型也是序列类型,和列表类型十分的相似,同样可以根据索引来获取元素,并且一样可以使用切片操作,和列表的不同之处在于,元组是 不可变类型 ,一旦创建是无法修改里面的值的。

元组是用小括号表示,数据项与数据项之间用逗号隔开,并且对于元组中数据的类型是没有限制的

值得注意的是当元组中只有一个元素的时候,我们必须在末尾加逗号

之前讲了列表和字符串,都可以通过索引的方式去访问,元组也一样,因为三者都是序列类型,访问的方式和列表、字符串的方式一样,这里就不在阐述了

元组的内置函数较少,并且十分简单

1.max、min最大值和最小值函数

2.tuple将 序列类型 转换成元组类型

以上内容是元组中的主要内容,后面当我们用到的时候我们再做其他的解释