python数据结构--序列

163 阅读1分钟

概述

  • 序列:被排成一列的对象
  • 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__

总结

Snipaste_2021-11-06_23-02-42.png