![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=1739559151-776CKn8BL9L06sRfYy1oPnaispDwE7SX-0-9209c683dabd3e7d6257d22df11948db)
前面提到过,序列中的元素是按照位置编号顺序排序的,可以用图4-1来描述序列中元素与位置的关系。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P62_37924.jpg?sign=1739559151-KPKL8mj6hI8SnpZr6xeInV4dKzzu4EmO-0-4c3b92cffe8ebe2e41da0c6b5d363ecc)
图4-1 序列中的元素与位置
提取元素索引时使用的是索引数,查询的一般格式是:序列名[索引数]。正索引数是从左往右,从0开始;负索引数是从右往左,从-1开始。因此通过索引数,可以实现正索引和负索引。注意索引数不能超过序列总长度(元素总个数)。
【例4-1】索引。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P62_78743.jpg?sign=1739559151-4wfqfvB8jHvyC4wR93MKVrbgYvS6rVuF-0-d7214cc95966db02f7aac76117650c0b)
程序运行结果如图4-2所示。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P62_37959.jpg?sign=1739559151-T98xsNJYaEes3ILuJM9dA8OY4WjcXLm2-0-ee572524f54471838b1075b9d763abe4)
图4-2 索引运行程序
切片就是提取序列中某一范围内的元素,提取的元素无论有多少,都会重新组成一个新的序列。分片的格式是:序列名[起始索引:中止索引:步长]。其中,切片从起始所引出的元素开始,到中止索引数的前一个数为止。步长是非零的整数,作为索引的间隔,当步长为正数时,从左到右提取元素,当步长为负数时,从右到左提取元素,如果没有设定步长的参数则默认为1。若索引段中不设定起始索引或中止索引,则取全部。
【例4-2】切片。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P62_81332.jpg?sign=1739559151-7MZYhkmg2ks3pqjlvpHAcWEP2SJ0Jrt1-0-ddb22af98155b99a229fc23e1daffa3d)
程序运行结果如图4-3所示。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P62_38006.jpg?sign=1739559151-WvSmRfZYLZ2QG5jmf7Pibs0AvB8Z0ait-0-abde1e54e4a97024b4243e6839424137)
图4-3 切片运行程序
4.2.2 序列计算
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P63_38128.jpg?sign=1739559151-dDZ0uxcQoW2hNrADRFn5iKnluD6gMWm3-0-949c4a6ebe887cb01d0729624665b66e)
序列可以进行相加、相乘的运算。
使用“+”可以实现两个序列的相加、拼接,相加时的序列必须是同类型的。
使用“*”可以将序列进行重复,得到一个新的序列。
【例4-3】序列计算。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P63_78744.jpg?sign=1739559151-m9Rvot9zdsriq8eaRZXUKXBGxRrbe48O-0-e9e2eb0d09cea592627f5abeaef7501b)
程序运行结果如图4-4所示。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P63_38058.jpg?sign=1739559151-X09y1XoWrN8HFXdRAqzfKQNF5xcOPOYy-0-4620715c98d33c87adf7208deab799b2)
图4-4 序列计算运行程序
4.2.3 序列相关操作的函数
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P63_38134.jpg?sign=1739559151-Hg1k7SrmUWHq3Qcb1UQhtgJ67cKYJhDq-0-b994c6fccb57b0d4e1140bdbb0764a7a)
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=1739559151-Nb4gbw4W81x6mh9UuqNdbLYLqB3qlwlA-0-cd7acae525ead2098bb5153d9b13f934)
程序运行结果如图4-5所示。
![](https://epubservercos.yuewen.com/CDC5B1/15825991504141406/epubprivate/OEBPS/Images/Figure-P63_38119.jpg?sign=1739559151-8XuuhlHkhdthrxHjEvAIUMKl7JMBaCtx-0-c7e99fed0152b44e3c47b0105c08a0df)
图4-5 序列函数运行程序