Python内置数据结构

Python内置数据结构和算法

名称 语言内置 内置库
线性结构 list(列表)/tuple(元组) array(数组)/ collections.nametuple(具名元组)
链式结构 collections.deque(双端队列)
字典结构 dict(字典) collections.Counter(计数器) / OrderDict(有序字典)
集合结构 set(集合) / frozenset( 不可变集合)
排序算法 sorted
二分算法 bisect模块
堆算法 heapq模块

collections模块

名称 功能
nametuple 通过名称访问元素的元组
deque 双端队列,链式结构(可以实现queue/stack)
counter 实现计数器功能
orderDict 记忆添加顺序的字典
defultDict key不存在时,有默认值

dict底层

  • 为了支持快速查找使用哈希表作为底层结构
  • 哈希表平均查找时间复杂度O(1)
  • CPython的解释器使用二次探查解决哈希冲突问题
  • 常见问题:
    • 哈希冲突
    • 扩容

List和tuple区别

  • 都是线性结构,支持下标访问
  • list是可变对象,tuple保存的引用不可变
  • list不可作为字典key, tuple可以
    • 可变对象不可hash

你可能感兴趣的:(Python,python)