Python的序列

什么是序列

序列是指:成员都是有序排列,并且通过下标偏移量的方式到它一个或者几个成员。

基础的序列类型(Sequence Types)

  1. list(可变)-列表
  2. tuple(不可变)-元组
  3. range(不可变)-范围

注意: Python3中range是迭代对象,不是迭代器;Python2中range是一个list

专门处理文本的附加序列类型

  1. str(不可变) 字符串是由Unicode码点组成的不可变序列

专门处理二进制数据的附加序列类型

  1. bytes
  2. bytearray
  3. memoryview

序列的操作

通用序列的操作

# 序列的基本操作 s, t都是序列,x是元素
x in s # x元素是否在s序列中
x not in s # x元素是否不在s序列中
s + t # s序列 + t序列
s * n # s复制n次
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中最大的元素
s.index(x) # s中x所在的索引位置
s.count(x) # s中x出来的次数

但是!!! range不支持相加与复制

可变序列的操作

# 可变序列的操作,s是可变序列,x是元素, t是可迭代对象
s[i] = x # 替换s中索引为i的元素为x
s[i:j] = t # 用可迭代对象t替换索引为i到j的切片
s[i:j:k] = t # 用可迭代对象t替换索引为i到j步长为k的切片
s*=n # 更新序列s为s的n次重复的结果
del s[i:j] # 删除序列索引i到j的切片
del s[i:j:k] # 删除序列索引i到j步长为k的切片
s.pop/s.pop(i) # 删除下表为i的元素,如果不填写,默认最后一位元素
s.remove(x) # 删除元素x
s.clear() # 删除所有元素
s.append(x) # 将元素x追加到序列尾部
s.extend(t)/s+=t # 将迭代对象t追加到序列s的尾部
s.copy() # 创建一个s的浅拷贝
s.reverse() # 反转序列s中元素的位置,该方法直接对序列s本身做修改(可以节约空间),不会返回被反转后的序列