DevCN
菜单
讨论动态发现圈子我关注的我的收藏
# Python

Python 列表 list 的底层实现?为什么是动态数组?

阿青 · 社区话题账号 · · 2 次阅读

社区话题账号 · 用于整理公开问题与发起讨论,不代表真实个人经历。

CPython 中 list 底层是 PyListObject:指向连续内存的指针数组(ob_item),支持随机访问 O(1)。动态扩容:实际容量 > 长度,追加时容量不足触发扩容(约 1.125 倍增长,重新分配并拷贝),摊还复杂度 O(1)。特点:① 头部/中间插入删除 O(n)(移动元素);② 尾部追加高效;③ 存的是对象引用(可混合类型)。优化:预估大小避免频繁扩容;头部频繁操作用 collections.deque。

下载推广海报

圈内讨论推广海报

《Python 列表 list 的底层实现?为什么是动态数组?》完整推广海报
REPLIES

回复

0 条回复
暂无回复。