![Python 3程序设计基础](https://wfqqreader-1252317822.image.myqcloud.com/cover/971/33892971/b_33892971.jpg)
3.3 序列通用
列表、字符串与元组都是序列,具有序列通用的操作、方法和函数,如下所示。
3.3.1 通用操作
列表、字符串与元组具有一些通用操作。其中,成员关系操作符用于判断序列中是否含有特定元素;索引操作符用于获取序列中的特定元素;切片操作符用于获得序列的多个元素。
(1)成员操作符(in和not in)
成员操作符用于检查某个元素是否属于序列。
【例3-2】 in举例。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/42_03.jpg?sign=1739209703-mOAc2ZRbWYTa4CwsfSW0ZZgR3AyVbYd2-0-1e11a3118deeb7f5b9cfc7fef29975c6)
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/43_01.jpg?sign=1739209703-0moZEfjjVhJMZtH58qKZSQhIIpMeu5G3-0-7aeadc51ae388540dfeb8872fd3ef293)
(2)索引(index)
序列中的每个元素被分配一个序号——即元素的位置,也称为索引。从左至右依次是0,…,n,从右向左计数来存取元素称为负数索引,依次是-1,-2,…,-n。li[-n]==li[len(list)-n]。
【例3-3】 索引举例。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/43_02.jpg?sign=1739209703-on42LErzKKUbh4kP1OdAmw0GnzTdLBfl-0-551917d20e82304a29d1d5b5ebdee121)
注意:Python从0开始计数。
(3)切片(slice)
序列切片是指使用序列序号截取其中的任何部分从而得到新的序列。切片操作符是在[]内提供一对可选数字,用“:”分割。冒号前的数表示切片的开始位置,冒号后的数字表示切片截止(但不包含)位置。
注意:记住数是可选的,而冒号是必需的;开始位置包含在切片中,而结束位置不包括。
【例3-4】 切片举例。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/43_03.jpg?sign=1739209703-RhrrKDEcNkDFHBEvwR3HzZDjNtDl8Kax-0-78acddd8bb5a2b9f236f8b7a08df4da0)
3.3.2 通用方法
序列具有一些通用方法,如下所示。
(1)加法
两个序列相加,进行连接操作,代表着两个序列进行并集操作。
【例3-5】 加法举例。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/43_04.jpg?sign=1739209703-c7S5CSpJ5xn8RxIGqf4ycdApykL0r9T5-0-ca1d4276d2cef9d3af505557ba0fc897)
(2)减法
【例3-6】 减法举例。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/44_01.jpg?sign=1739209703-PKSOEMgFH6O22pXnGsX2bHmXqtyWReMW-0-97da2a59b92f61f6acf7133b96d8bebd)
可以看出,Python不支持减号,序列的减法属于集合进行差集,如下所示。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/44_02.jpg?sign=1739209703-oGDMfLxeyoz1frBx8sB2OuLfKONfKpSh-0-a615bb3147b69a55b5332d89ea24848e)
(3)乘法
序列的乘法表示将原来的序列重复多次。
【例3-7】 乘法举例。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/44_03.jpg?sign=1739209703-rzvcrJPz6NuGRGLHzoDAmgpVRHtC6uwX-0-1c8b5b9d6c2274dc075f0c3debe920df)
(4)交集
【例3-8】 交集举例。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/44_04.jpg?sign=1739209703-lM4B34Lb4JESt0QVqU9hXc31CdxfilST-0-52c6f1b4d0ebe7115512c929ff64af76)
3.3.3 通用函数
序列操作具有一些通用函数,比如求序列长度len();求最大值max();最小值min();求和sum()等,如下所示。
(1)len()
功能:求出序列所包含的元素的个数。
【例3-9】 len()举例。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/44_05.jpg?sign=1739209703-GYDAZskqkBI1l442RE7IXXD5r22q6aXT-0-271f9409d4e7fed5b02d041be37705a9)
(2)min()
功能:求出序列中最小值。
【例3-10】 min()举例。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/44_06.jpg?sign=1739209703-wN3EIpYF3zylpNFHyK0jxGzXUq76yEZY-0-487bae650c79473b9c81642ff7d8979b)
(3)max()
功能:求出序列中最大值。
【例3-11】 max()举例。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/45_01.jpg?sign=1739209703-4d6cAfbYLIOUt6xSRnLwhPHFnCOhfmvc-0-5f3e6dd309e6fc930ad0dbfe23bb36ab)
(4)sum()
功能:求出序列中切片之间的和,序列元素必须是数值。
【例3-12】 sum()举例。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/45_02.jpg?sign=1739209703-Cgmz3JKoAu9t3OPwnE2iSZTNH1ZTgNQQ-0-67f7476bc6bb29d5b44cf90e34da9444)
(5)reverse()
功能:用于对列表中的元素进行反转存放。
【例3-13】 reverse()举例。
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/45_03.jpg?sign=1739209703-1qJV4taa9TCwurEzxcikpRBwNtXiPLaa-0-c32a01b9ed5f957404ab680934a41b8f)
通用函数如表3-3所示。
表3-3 通用函数
![](https://epubservercos.yuewen.com/1536BF/18123625601962306/epubprivate/OEBPS/Images/45_04.jpg?sign=1739209703-x20TWwhPYx9a0ioxEzz62RDxfJUwek8u-0-ef1fc16dcfde5b2a0a76b5d23f6c3176)