![Python从入门到项目实践(超值版)](https://wfqqreader-1252317822.image.myqcloud.com/cover/265/27563265/b_27563265.jpg)
上QQ阅读APP看书,第一时间看更新
4.2 序列通用操作
我们知道了序列中有不同的集合存在,例如列表、元组、字符串都是不同的序列,但是对于所有序列而言,都有通用的操作,本节先介绍一些序列的通用操作,之后再单独介绍两个典型的序列:列表和元组。
4.2.1 序列的索引和切片
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P62_38013.jpg?sign=1739279134-b1oGSgvufsr2v7iqJ4gVcFAXDXKv3cqe-0-6c6e334f66c8e5fd82c5f0de477bc8f7)
前面提到过,序列中的元素是按照位置编号顺序排序的,可以用图4-1来描述序列中元素与位置的关系。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P62_37924.jpg?sign=1739279134-V0CR8NwlMZyciz7U4MqjpEwG4MmYXY2K-0-091ffba7331a1c33e4feab0d918bbd13)
图4-1 序列中的元素与位置
提取元素索引时使用的是索引数,查询的一般格式是:序列名[索引数]。正索引数是从左往右,从0开始;负索引数是从右往左,从-1开始。因此通过索引数,可以实现正索引和负索引。注意索引数不能超过序列总长度(元素总个数)。
【例4-1】索引。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P62_78743.jpg?sign=1739279134-V9Ppt3d0ZLiOJTz47d3P5sPt1JPWW2OZ-0-d15f62f5d7504ae005c394ada5758d28)
程序运行结果如图4-2所示。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P62_37959.jpg?sign=1739279134-zcSSTMCqZX1piuo9yZobu26Pfc11tN8a-0-0c847f19d0b7e64a4a640e96a85ef51e)
图4-2 索引运行程序
切片就是提取序列中某一范围内的元素,提取的元素无论有多少,都会重新组成一个新的序列。分片的格式是:序列名[起始索引:中止索引:步长]。其中,切片从起始所引出的元素开始,到中止索引数的前一个数为止。步长是非零的整数,作为索引的间隔,当步长为正数时,从左到右提取元素,当步长为负数时,从右到左提取元素,如果没有设定步长的参数则默认为1。若索引段中不设定起始索引或中止索引,则取全部。
【例4-2】切片。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P62_81332.jpg?sign=1739279134-ICWQOk32aPf08w1UDzKumGWD17dBYjgr-0-1a991732391f4d3d03dbeee812a74ab5)
程序运行结果如图4-3所示。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P62_38006.jpg?sign=1739279134-viSGXuFXkcPUxUyCHu4j2xLJ4dzUkTzc-0-268be0b4e11b780cd09ebf8daa69af6b)
图4-3 切片运行程序
4.2.2 序列计算
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P63_38128.jpg?sign=1739279134-g9yED3no6hudGPzdsAYCHL0ITdBY51Df-0-df783e13747814fc47c977867182ffd7)
序列可以进行相加、相乘的运算。
使用“+”可以实现两个序列的相加、拼接,相加时的序列必须是同类型的。
使用“*”可以将序列进行重复,得到一个新的序列。
【例4-3】序列计算。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P63_78744.jpg?sign=1739279134-xjYP5GxSSIIUenC4pnDujhyN412QlgNw-0-1788128d36dc94d8f34ae08175ba0d76)
程序运行结果如图4-4所示。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P63_38058.jpg?sign=1739279134-aRmy6pFSx1RWxgCTostRZ9aWL5Wq2fMn-0-62d792d0e00b83fbb7f3ec56c0177db4)
图4-4 序列计算运行程序
4.2.3 序列相关操作的函数
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P63_38134.jpg?sign=1739279134-tU1nVY5KU7KF9sLS1ysQHeubxSFO5SAj-0-726a83ad425946fa9128519d8ff28236)
Python中提供了一些函数方法帮助用户操作序列。
- 使用in()和not in()两个函数可以查询某元素是否在序列中,返回结果是True或False;
- 使用len()函数可以获取序列的总长度;
- 使用max()和min()函数可以获得序列中最大和最小的元素;
- 使用sum()函数可以计算元素只为数值的序列的和。
【例4-4】序列函数。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P63_78747.jpg?sign=1739279134-lm1iHkEDFqbPTT86Z3fvUtPGs4NsNZLe-0-cb15e38e308ad3ba4bf843f1d05dbe3c)
程序运行结果如图4-5所示。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P63_38119.jpg?sign=1739279134-fK08Al43LqV5OmiMfRxyy1s7vLRVzYAO-0-978c921bd9436e645b2c70398a19010d)
图4-5 序列函数运行程序