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 语言的设计者。