- Python程序设计
- 张雪萍主编
- 1042字
- 2020-08-27 23:59:43
2.4 元组
Python中另外一个比较常用的数据结构是元组,又称为tuple,它属于序列中的不可变序列。
1.元组的基本特性
元组是序列中的不可变序列,它与列表有很多相同点。列表是一个可以包含任意对象的有序集合,这一点同样适用于元组。所以说,元组也是“可以包含任意对象的有序集合”。当然,元组也有与列表不同的特点。以下是元组所具有的特性:
(1)元组是包含任意对象的有序集合。
(2)通过下标索引(位置偏移)访问元素。
(3)固定长度(列表是可变长度)、异质、可任意嵌套。
(4)对象引用数组。
2.元组的声明
列表通过一个中括号来声明,元组可以使用一个圆括号来进行声明。
1)空元组的声明
2)声明只含一个元素的元组
强调:对只含一个元素的元组进行声明时,末尾的“,”不能省略!
3.元组转换函数tuple()
与列表类似,同样可以将某个特定的可迭代序列转换为元组。假定有函数“range()”生成了一个序列,可以通过转换函数“tuple()”将它转换为一个元组。
“range(1,6)”产生的是一个可迭代的序列,其值是:1,2,3,4,5,注意不包含值 6,后面将会介绍。
4.元组的常用操作
对元组元素的访问操作,仍然是通过下标索引来进行的。也可以进行一定范围的访问,即通过范围进行访问。由于元组也是序列类型,因此,元组支持序列类型的通用操作,如判断元素是否在序列之内、连接序列、重复序列元素、下标获取元素、访问指定索引范围、按步长访问指定索引范围、获取序列长度、获取最小值、获取最大值、求和(必须是数字类型数据)等都可以用在元组上。但不支持可变序列及列表的通用操作,因为它有不可变的特性,即元组不支持原位改变,也不支持扩展操作。如:
这里,由于元组元素 tp[2]是一个列表,因此,可以对其进行修改,但如果元素又是一个元组,则仍然不允许修改。
相对于列表而言,元组少了很多操作。但可能还会遇到一个函数返回多个值的情况,比如“return a,b”,这种情况其本质上还是一个元组,也就是说,元组使用的场景还是比较多、比较广的。
在实际开发过程中,如果我们确定不会出现原位改变这种情况,则用元组比用列表更合适,能在一定程度上保证数据的安全。
5.使用元组的好处
元组比列表操作速度快,如果定义了一个值的常量集,并且唯一要使用的是不断地遍历它,那就使用元组来代替列表。
利用元组存储数据,可以对不需要修改的数据进行“写保护”,使得代码更安全。使用元组而不是列表如同拥有一个隐含的 assert(断言,第 4 章将介绍)语句,说明这一数据是常量,如果必须要改变这些值,则需要执行从元组到列表的转换。
下面是由元组转换成列表的代码示例。