![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=1739597923-hlGVnwwA9Etbe4WV21j3kbjO4It5Jjvr-0-49d9f46dbddae07dbadcea194b0b6b40)
前面提到过,序列中的元素是按照位置编号顺序排序的,可以用图4-1来描述序列中元素与位置的关系。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P62_37924.jpg?sign=1739597923-taClafuzgVbEZ5e18fVK5Czec0MZN6T2-0-9aff4fd307f8de8e5e99451ee70b4146)
图4-1 序列中的元素与位置
提取元素索引时使用的是索引数,查询的一般格式是:序列名[索引数]。正索引数是从左往右,从0开始;负索引数是从右往左,从-1开始。因此通过索引数,可以实现正索引和负索引。注意索引数不能超过序列总长度(元素总个数)。
【例4-1】索引。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P62_78743.jpg?sign=1739597923-qOKKt3ODysL8Y1HA4xf2GohS1zMQLrRo-0-c774e54716b4912ade37bf2b0bf3d04c)
程序运行结果如图4-2所示。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P62_37959.jpg?sign=1739597923-rDQgZIGMXE35JsocZTBIVc3lMXF2qWVO-0-fcb1f7e0779061f54c881e76783d9ad8)
图4-2 索引运行程序
切片就是提取序列中某一范围内的元素,提取的元素无论有多少,都会重新组成一个新的序列。分片的格式是:序列名[起始索引:中止索引:步长]。其中,切片从起始所引出的元素开始,到中止索引数的前一个数为止。步长是非零的整数,作为索引的间隔,当步长为正数时,从左到右提取元素,当步长为负数时,从右到左提取元素,如果没有设定步长的参数则默认为1。若索引段中不设定起始索引或中止索引,则取全部。
【例4-2】切片。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P62_81332.jpg?sign=1739597923-PsmSm9fRZ7z5T5oEE82ipijI8qtw0Glj-0-25a01a004fa7b93e41fe2521bc8e9ce2)
程序运行结果如图4-3所示。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P62_38006.jpg?sign=1739597923-7GRn0mbOpLBOBSGuYIcMtyzK8wdiNJHU-0-562c49ee7099e3c5e0cd435d4cb60d6b)
图4-3 切片运行程序
4.2.2 序列计算
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P63_38128.jpg?sign=1739597923-l8mBRnLVmDi1KLoJkNwKFqMuW8f71cst-0-ef228b31d673cb7c3918514c49f7f2be)
序列可以进行相加、相乘的运算。
使用“+”可以实现两个序列的相加、拼接,相加时的序列必须是同类型的。
使用“*”可以将序列进行重复,得到一个新的序列。
【例4-3】序列计算。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P63_78744.jpg?sign=1739597923-6RWLIE3NCcVHwp9SSJ4CZvzidpN4U0vE-0-2b9e276e0414b755fe80c8d263804af1)
程序运行结果如图4-4所示。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P63_38058.jpg?sign=1739597923-vKeUXW7ui2aTq20tidoxxHYhax6n1NPl-0-d29fe24bcaf850e0b75e9a1e148e42ab)
图4-4 序列计算运行程序
4.2.3 序列相关操作的函数
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P63_38134.jpg?sign=1739597923-iID0yhQE8BG9BrFpRZpg4HegXDR4Zuja-0-cbe2861e6df9dabfae0aa413278fd279)
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=1739597923-iHvvyVGd9wDrz2cMnefb0ImWwHOPHI2e-0-e15db8f4a23b14dabcb842d148bbc9da)
程序运行结果如图4-5所示。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P63_38119.jpg?sign=1739597923-CCDOCZHDciW4JfnQ11bfEjouy9kE3ZZN-0-f75c1252ed2ee25c2c39655d83310a2a)
图4-5 序列函数运行程序