概述
- 序列:被排成一列的对象
- python对不同类型的序列数据,采用统一的风格进行处理,支持序列的迭代、切片、排序和拼接操作。
分类
- 为了理解序列的特点,可以从以下两个维度对序列进行分类
序列的功能
- 容器序列:可以存放不同类型对象,存放的是对象的引用。如列表list、元组tuple等
- 扁平序列:只能容纳一种类型对象,存放是对象本身,本质是一段连续的内存空间。只能存放字符、字节、数值等基础类型对象,如字符串str、字节串bytes等都是扁平序列。
序列的可变性
- 不可变序列:tuple、str、bytes等,虽然也可以进行拼接操作,但生成的是一个新的序列
- 可变序列:list、array.arrayd等,可对序列进行拼接操作,序列不变
- 如下示例,使用id方法判断序列在拼接后是否发生变化
>>> id(a)
1862999839440
>>> a=a+'test'
>>> id(a)
1862999828976
>>> l=[1,2,3]
>>> id(l)
1862999823368
>>> l+=[4,5]
>>> id(l)
1862999823368
- 序列相关魔法方法
- 迭代:
__iter__
- 序列长度:
__len__
- 取值切片:
__getitems__
- 赋值切片:
__setitems__
总结
