内容正文:
单元4 组合数据类型
任务4-3:使用元组保存“蛟龙号”深潜纪录
【任务目标】
2012年,蛟龙号载人潜水器进行7000米级海试,刷新了多个“中国深度”新纪录:6月15日,6671米;6月19日,6965米;6月22日,6963米;6月24日,7020米;6月27日,7062米(摘自百度百科:蛟龙号载人潜水器)。
使用元组保存“蛟龙号”深潜纪录并输出,程序运行结果如下。
“蛟龙号”深潜纪录:
2012-06-15 6671 米
2012-06-19 6965 米
2012-06-22 6963 米
2012-06-24 7020 米
2012-06-27 7062 米
【任务实施】
演示过程……
4.3 元组
元组可以看作是不可变的列表,它具有列表的大多数特点。
元组常量用圆括号表示,例如:(1,2)、('a','b','abc')
元组的主要特点如下。
元组可包含任意类型的对象。
元组是有序的。元组中的对象可通过位置进行索引和切片。
元组的大小不能改变,即不能为元组添加对象,也不能删除元组中的对象。
元组中的对象也不能改变。
元组中存储的是对象的引用,而不是对象本身。
4.3.1 元组基本操作
元组基本操作包括:
创建元组
求元组长度
合并元组
创建包含重复元素的元组
迭代元组
关系判断
索引
和切片
1.创建元组
可用元组常量或tuple()方法来创建元组对象,示例如下。
>>> () #创建空元组对象
()
>>> tuple() #创建空元组对象
()
>>> (2,) #包含一个对象的元组,不能缺少逗号
(2,)
>>> (1,2.5,'abc',[1,2]) #包含不同类型对象的元组
(1, 2.5, 'abc', [1, 2])
>>> 1,2.5,'abc',[1,2] #元组常量可以省略括号
(1, 2.5, 'abc', [1, 2])
>>> (1,2,('a','b')) #元组可以嵌套元组
(1, 2, ('a', 'b'))
>>> tuple('abcd') #用字符串创建元组,可迭代对象均可用于创建元组
('a', 'b', 'c', 'd')
>>> tuple([1,2,3]) #用列表创建元组
(1, 2, 3)
>>> tuple(x*2 for x in range(5)) #用解析结构创建元组
(0, 2, 4, 6, 8)
2.求长度
len()函数可用于获得元组长度,示例代码如下。
>>> len((1,2,3,4))
4
3.合并
加法运算可用于合并多个元组,示例代码如下。
>>> (1,2)+('ab','cd')+(2.45,)
(1, 2, 'ab', 'cd', 2.45)
4.重复
乘法运算可用于合并多个重复的元组,示例代码如下。
>>> (1,2)*3
(1, 2, 1, 2, 1, 2)
5.迭代
可用迭代方法遍历元组中的各个对象,示例代码如下。
>>> for x in (1,2.5,'abc',[1,2]):print(x)
…
1
2.5
abc
[1, 2]
6.关系判断
in操作符可用于判断对象是否属于元组,示例代码如下。
>>> 2 in (1,2)
True
>>> 5 in (1,2)
False
7.索引和切片
可通过位置对元组对象进行索引和切片,示例代码如下。
>>> x=tuple(range(10))
>>> x
(0, 1, 2, 3, 4, 5, 6, 7, 8, 9)
>>> x[1]
1
>>> x[-1]
9
>>> x[2:5]
(2, 3, 4)
>>> x[2:]
(2, 3, 4, 5, 6, 7, 8, 9)
>>> x[:5]
(0, 1, 2, 3, 4)
>>> x[1:7:2]
(1, 3, 5)
>>> x[7:1:-2]
(7, 5, 3)
4.3.2 元组的方法
1.count()方法
count()方法用于返回指定值在元组中出现的次数,示例如下。
>>> x=(1,2)*3
>>> x
(1, 2, 1, 2, 1, 2)
>>> x.count(1) #返回1在元组中出现的次数
3
>>> x.count(3) #元组不包含指定值时,返回0
0
2.index(value,[start,[end]])方法
未用start和end指定范围时,返回指定值在元组中第一次出现的位置;
指定范围时,返回指定值在指定范围内第一次出现的位置。
>>> x=(1,2,3)*3
>>> x
(1, 2, 3, 1, 2, 3, 1, 2, 3)
>>> x.index(2) #默认查找全部元组
1
>>> x.index(2,2) #从偏移量2到元组末尾查找
4
>>> x.index(2,2,7) #在范围[2:7]内查找
4
>>> x.index(5) #如果元组不包含指定的值,则出错
Traceback (most recent call last):
File "<pyshell#171>", line 1, in <module>
x.index(5)
ValueError: tuple.index(x): x not in tuple
$$