
上QQ阅读APP看书,第一时间看更新
4.2 序列通用操作
我们知道了序列中有不同的集合存在,例如列表、元组、字符串都是不同的序列,但是对于所有序列而言,都有通用的操作,本节先介绍一些序列的通用操作,之后再单独介绍两个典型的序列:列表和元组。
4.2.1 序列的索引和切片

前面提到过,序列中的元素是按照位置编号顺序排序的,可以用图4-1来描述序列中元素与位置的关系。

图4-1 序列中的元素与位置
提取元素索引时使用的是索引数,查询的一般格式是:序列名[索引数]。正索引数是从左往右,从0开始;负索引数是从右往左,从-1开始。因此通过索引数,可以实现正索引和负索引。注意索引数不能超过序列总长度(元素总个数)。
【例4-1】索引。

程序运行结果如图4-2所示。

图4-2 索引运行程序
切片就是提取序列中某一范围内的元素,提取的元素无论有多少,都会重新组成一个新的序列。分片的格式是:序列名[起始索引:中止索引:步长]。其中,切片从起始所引出的元素开始,到中止索引数的前一个数为止。步长是非零的整数,作为索引的间隔,当步长为正数时,从左到右提取元素,当步长为负数时,从右到左提取元素,如果没有设定步长的参数则默认为1。若索引段中不设定起始索引或中止索引,则取全部。
【例4-2】切片。

程序运行结果如图4-3所示。

图4-3 切片运行程序
4.2.2 序列计算

序列可以进行相加、相乘的运算。
使用“+”可以实现两个序列的相加、拼接,相加时的序列必须是同类型的。
使用“*”可以将序列进行重复,得到一个新的序列。
【例4-3】序列计算。

程序运行结果如图4-4所示。

图4-4 序列计算运行程序
4.2.3 序列相关操作的函数

Python中提供了一些函数方法帮助用户操作序列。
- 使用in()和not in()两个函数可以查询某元素是否在序列中,返回结果是True或False;
- 使用len()函数可以获取序列的总长度;
- 使用max()和min()函数可以获得序列中最大和最小的元素;
- 使用sum()函数可以计算元素只为数值的序列的和。
【例4-4】序列函数。

程序运行结果如图4-5所示。

图4-5 序列函数运行程序