Python基础 - Python数据类型之元组类型

Python数据类型之元组类型

Posted by 王富杰 on Monday, February 24, 2025

一、元组类型介绍

元组和列表有些类似,也被称为不可变的列表。即元组是不可变类型,不能进行修改。元组的定时使用小括号,里面的元素也可以是任意类型。每个元素使用逗号隔开。

>>> t = (1, 3.14, "aa", [4, 5, 6], {'a':1, 'b':2}, (7, 8, 9))
>>> print(type(t))
<class 'tuple'>

可以看到元组的类型是 tuple 。里面的元素可以是数字,字符串,列表,字段,元组等。注意,因为元素的定义使用小括号,并且小括号比较特殊。当定义的元组只有一个元素时,需要在这个元素后面加一个逗号。

>>> t = (88)
>>> print(type(t))
<class 'int'>
>>> 
>>> t = (88,)
>>> print(type(t))
<class 'tuple'>

元组和列表字典一样,都是容器类型。也就是元组里面存储的是元素的内存地址。因为元组是不可变类型,也就是说元组一旦定义完成,元组中存的内存地址是不能发生改变的。但是如果元组的元素是列表或字段类型,是可以修改里面嵌套的列表和字典的值的。

>>> t = (1, 3.14, "aa", [4, 5, 6], {'a':1, 'b':2}, (7, 8, 9))
>>> t[0] = 2
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> t[3][0] = 10
>>> print(t)
(1, 3.14, 'aa', [10, 5, 6], {'a': 1, 'b': 2}, (7, 8, 9))

二、元组的类型转换

和列表一样,可迭代对象都可以被转换为元组。通过tuple()功能实现。

>>> tuple("wfj")
('w', 'f', 'j')
>>> tuple([1, 2, 3])
(1, 2, 3)
>>> tuple({'a':1, 'b':2})
('a', 'b')
>>> tuple(range(5))
(0, 1, 2, 3, 4)

三、元组的内置方法

因为元组是不可变类型,没有修改和删除操作,因此内置方法相对较少。 1、统计元素出现的次数 count

>>> t = ('a', 'b', 'c', 'a', 'a')
>>> t.count('a')
3

2、查找某个元素的索引 index

>>> t = ['a', 'b', 'c', 'a', 'a']
>>> t.index('a')
0

如果元素存在多次,则默认从左往右找,返回第一个的位置。

元组还存在其他的方法,1、索引取值 2、切片 3、统计长度 4、成员运算 5、循环 这些方法都和列表的操作一模一样的,此处就不再逐个演示。

四、为什么使用元组

经过上边的介绍,我们发现用元组能做的事列表都能做。那元组的存在还有什么意义呢? 当然是有的,由于元组是不可变的,它们通常比列表更轻量和高效: 更快的创建速度:元组的创建比列表快,因为它们的内容不可更改,内存分配和初始化的开销更小。 更快的访问速度:元组的访问速度稍微比列表快,因为元组的内存布局更加紧凑。 因此,如果我们针对不变的数据,一定要使用元组,而不是认为创建个列表只读不改就可以了。

「真诚赞赏,手留余香」

WangFuJie Blog

真诚赞赏,手留余香

使用微信扫描二维码完成支付