序列类型定义

  • 序列是具有先后关系的一组元素;是一个基类类型

  • 序列是一维元素向量,元素类型可以不同

  • 类似数学元素序列: s0, s1, … , sn-1

  • 元素间由序号引导,通过下标访问序列的特定元素

  • 容器序列—list、tuple 和 collections.deque 这些序列能存放不同类型的数据。

  • 扁平序列—-str、bytes、bytearray、memoryview 和 array.array,这类序列只能容纳一种类型。

  • 容器序列存放的是它们所包含的任意类型的对象的引用,而扁平序列里存放的是值而不是引用。

序列类型分类

可变序列

list、bytearray、array.array、collections.deque 和 memoryview

不可变序列

image-20210821220228991

image-20210921155448554

Sequence为不可变序列,MutableSequence为可变序列

序列类型通用操作符

  • x in s 如果x是序列s的元素,返回True,否则返回False
  • x not in s 如果x是序列s的元素,返回False,否则返回True
  • s + t 连接两个序列s和t *s*n* 或 *n*s* 将序列s复制n次
  • s**[i]** 索引,返回s中的第i个元素,i是序列的序号
  • s**[i: j]** 或 s**[i: j: k]** 切片,返回序列s中第i到j以k为步长的元素子序列

序列类型通用函数和方法

  • len(s) 返回序列s的长度,即元素个数
  • min(s) 返回序列s的最小元素,s中元素需要可比较
  • max(s) 返回序列s的最大元素,s中元素需要可比较
  • s.index(x) 或s.index(x, i, j) 返回序列s从i开始到j位置中第一次出现元素x的位置
  • s.count(x) 返回序列s中出现x的总次数