6.2 有序的数据集合体

大量数据按次序排列而形成的集合体称为序列(sequence)。注意,这里所说的“次序”是指各成员数据之间有位置的前后,并非指成员数据按值的大小来排列。就像一群人站成一 排即成序列,并不一定要按高矮顺序排列。

Python 中的字符串、列表和元组数据类型都是序列,第 2 章中对它们有过初步介绍, 本节将继续介绍对序列的处理。从第 5 章我们初步了解了对象的概念,以及如何对图形对象 进行操作。这里要说明的是,Python 序列其实都是以面向对象方式实现的,因此对序列的 处理可以通过对序列对象的方法进行调用而实现。

表 6.1 列出了对序列的一些通用的操作(运算符和内建函数),利用这些操作可以实现 对序列的索引、联接、复制、检测成员等。

方法含义
s1 + s2序列 s1 和 s2 联接成一个序列
s n 或 n s序列 s 复制 n 次,即 n 个 s 联接
s[i]序列 s 中索引为 i 的成员
s[i:j]序列 s 中索引从 i 到 j 的子序列
s[i:j:k]序列 s 中索引从 i 到 j 间隔为 k 的子序列
len(s)序列 s 的长度
min(s)序列 s 中的最小数据项
max(s)序列 s 中的最大数据项
x in s检测 x 是否在序列 s 中,返回 True 或 False
x not in s检测 x 是否不在序列 s 中,返回 True 或 False

表 6.1 对序列的基本操作

此外,序列还支持比较运算。序列 s 和 t 的大小按字典序确定:首先通过比较 s[0]与 t[0] 来决定大小,相等时再比较 s[1]和 t[1],依次类推。这就是说,两个序列相等当且仅当它们 的对应位置上的成员都相等,并且长度相同。

各种序列还有各自特殊的操作,下面分别讨论。

① PASCAL 语言的设计者。